Computes the squared hinge loss between labels and predictions.
loss = square(maximum(1 - labels * predictions, 0))
labels
values are expected to be -1 or 1. If binary (0 or 1) labels are provided,
they will be converted to -1 or 1.
Standalone usage:
Operand<TFloat32> labels = tf.constant(new float[][] { {0., 1.}, {0., 0.} }); Operand<TFloat32> predictions = tf.constant(new float[][] { {0.6f, 0.4f}, {0.4f, 0.6f} }); SquaredHinge squaredHinge = new SquaredHinge(tf); Operand<TFloat32> result = squaredHinge.call(labels, predictions); // produces 1.86f
Calling with sample weight:
Operand<TFloat32> sampleWeight = tf.constant(new float[] {1.f, 0.f}); Operand<TFloat32> result = squaredHinge.call(labels, predictions, sampleWeight); // produces 0.73f
Using SUM
reduction type:
SquaredHinge squaredHinge = new SquaredHinge(tf, Reduction.SUM); Operand<TFloat32> result = squaredHinge.call(labels, predictions); // produces 3.72f
Using NONE
reduction type:
SquaredHinge squaredHinge = new SquaredHinge(tf, Reduction.NONE); Operand<TFloat32> result = squaredHinge.call(labels, predictions); // produces [1.46f, 2.26f]
Inherited Fields
Public Constructors
SquaredHinge(Ops tf)
Creates a Squared Hinge Loss using
getSimpleName() as the loss name and a Loss
Reduction of REDUCTION_DEFAULT |
|
SquaredHinge(Ops tf, Reduction reduction)
Creates a Squared Hinge Loss using
getSimpleName() as the loss name |
|
Public Methods
<T extends TNumber> Operand<T> |
Inherited Methods
Public Constructors
public SquaredHinge (Ops tf)
Creates a Squared Hinge Loss using getSimpleName()
as the loss name and a Loss
Reduction of REDUCTION_DEFAULT
Parameters
tf | the TensorFlow Ops |
---|
public SquaredHinge (Ops tf, Reduction reduction)
Creates a Squared Hinge Loss using getSimpleName()
as the loss name
Parameters
tf | the TensorFlow Ops |
---|---|
reduction | Type of Reduction to apply to the loss. |
public SquaredHinge (Ops tf, String name, Reduction reduction)
Creates a Squared Hinge
Parameters
tf | the TensorFlow Ops |
---|---|
name | the name of the loss |
reduction | Type of Reduction to apply to the loss. |
Public Methods
public Operand<T> call (Operand<? extends TNumber> labels, Operand<T> predictions, Operand<T> sampleWeights)
Generates an Operand that calculates the loss.
If run in Graph mode, the computation will throw TFInvalidArgumentException
if the label values are not in the set
[-1., 0., 1.]. In Eager Mode, this call will throw IllegalArgumentException
, if the
label values are not in the set [-1., 0., 1.].
Parameters
labels | the truth values or labels, must be either -1, 0, or 1. Values are expected to be -1 or 1. If binary (0 or 1) labels are provided they will be converted to -1 or 1. |
---|---|
predictions | the predictions, values must be in the range [0. to 1.] inclusive. |
sampleWeights | Optional SampleWeights acts as a coefficient for the loss. If a scalar is provided, then the loss is simply scaled by the given value. If SampleWeights is a tensor of size [batch_size], then the total loss for each sample of the batch is rescaled by the corresponding element in the SampleWeights vector. If the shape of SampleWeights is [batch_size, d0, .. dN-1] (or can be broadcast to this shape), then each loss element of predictions is scaled by the corresponding value of SampleWeights. (Note on dN-1: all loss functions reduce by 1 dimension, usually axis=-1.) |
Returns
- the loss
Throws
IllegalArgumentException | if the predictions are outside the range [0.-1.]. |
---|