Computes the categorical hinge loss between labels and predictions.
loss = maximum(neg - pos + 1, 0) where neg=maximum((1-labels)*predictions)
and pos=sum(labels*predictions)
labels values are expected to be 0 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} });
CategoricalHinge categoricalHinge = new CategoricalHinge(tf);
Operand<TFloat32> result = categoricalHinge.call(labels, predictions);
// produces 1.4
Calling with sample weight:
Operand<TFloat32> sampleWeight = tf.constant(new float[] {1f, 0.f});
Operand<TFloat32> result = categoricalHinge.call(labels, predictions, sampleWeight);
// produces 0.6f
Using SUM reduction type:
CategoricalHinge categoricalHinge = new CategoricalHinge(tf, Reduction.SUM);
Operand<TFloat32> result = categoricalHinge.call(labels, predictions);
// produces 2.8f
Using NONE reduction type:
CategoricalHinge categoricalHinge =
new CategoricalHinge(tf, Reduction.NONE);
Operand<TFloat32> result = categoricalHinge.call(labels, predictions);
// produces [1.2f, 1.6f]
Inherited Fields
Public Constructors
|
CategoricalHinge(Ops tf)
Creates a Categorical Hinge Loss using
getSimpleName() as the loss name and a
Loss Reduction of REDUCTION_DEFAULT |
|
|
CategoricalHinge(Ops tf, Reduction reduction)
Creates a Categorical Hinge Loss using
getSimpleName() as the loss name |
|
Public Methods
| <T extends TNumber> Operand<T> |
Inherited Methods
Public Constructors
public CategoricalHinge (Ops tf)
Creates a Categorical Hinge Loss using getSimpleName() as the loss name and a
Loss Reduction of REDUCTION_DEFAULT
Parameters
| tf | the TensorFlow Ops |
|---|
public CategoricalHinge (Ops tf, Reduction reduction)
Creates a Categorical Hinge Loss using getSimpleName() as the loss name
Parameters
| tf | the TensorFlow Ops |
|---|---|
| reduction | Type of Reduction to apply to the loss. |
public CategoricalHinge (Ops tf, String name, Reduction reduction)
Creates a Categorical 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.
Parameters
| labels | the truth values or labels |
|---|---|
| predictions | the predictions |
| 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