Computes the cosine similarity between labels and predictions.
Note that it is a number between -1 and 1. When it is a negative
number between -1 and 0, 0 indicates orthogonality and
values closer to -1indicate greater similarity. The values closer to 1
indicate greater dissimilarity. This makes it usable as a loss function in a setting where you
try to maximize the proximity between predictions and targets. If either labels or
predictions is a zero vector, cosine similarity will be 0 regardless of
the proximity between predictions and targets.
loss = -sum(l2Norm(labels) * l2Norm(predictions))
Standalone usage:
Operand<TFloat32> labels =
tf.constant(new float[][] { {0.f, 1.f}, {1.f, 1.f} });
Operand<TFloat32> predictions =
tf.constant(new float[][] { {1.f, 0.f}, {1.f, 1.f} });
CosineSimilarity cosineLoss = new CosineSimilarity(tf);
Operand<TFloat32> result = cosineLoss.call(labels, predictions);
// produces -0.5
Calling with sample weight:
Operand<TFloat32> sampleWeight = tf.constant(new float[] {0.8f, 0.2f});
Operand<TFloat32> result = cosineLoss.call(labels, predictions, sampleWeight);
// produces -0.0999f
Using SUM reduction type:
CosineSimilarity cosineLoss = new CosineSimilarity(tf, Reduction.SUM);
Operand<TFloat32> result = cosineLoss.call(labels, predictions);
// produces -0.999f
Using NONE reduction type:
CosineSimilarity cosineLoss = new CosineSimilarity(tf, Reduction.NONE);
Operand<TFloat32> result = cosineLoss.call(labels, predictions);
// produces [-0.f, -0.999f]
Constants
| int | DEFAULT_AXIS |
Fields
| public static final Reduction | DEFAULT_REDUCTION |
Inherited Fields
Public Constructors
|
CosineSimilarity(Ops tf)
Creates a Cosine Similarity Loss using
getSimpleName() as the loss name, an axis
of DEFAULT_AXIS, and a Loss Reduction of DEFAULT_REDUCTION |
|
|
CosineSimilarity(Ops tf, String name)
Creates a Cosine Similarity Loss using an axis of
DEFAULT_AXIS, and a Loss Reduction
of DEFAULT_REDUCTION |
|
|
CosineSimilarity(Ops tf, int axis)
Creates a Cosine Similarity Loss using
getSimpleName() as the loss name, and a
Loss Reduction of DEFAULT_REDUCTION |
|
|
CosineSimilarity(Ops tf, int[] axis)
Creates a Cosine Similarity Loss using
getSimpleName() as the loss name, and a
Loss Reduction of DEFAULT_REDUCTION |
|
|
CosineSimilarity(Ops tf, String name, int axis)
Creates a Cosine Similarity Loss using a Loss Reduction of
DEFAULT_REDUCTION |
|
|
CosineSimilarity(Ops tf, String name, int[] axis)
Creates a Cosine Similarity Loss using a Loss Reduction of
DEFAULT_REDUCTION |
|
|
CosineSimilarity(Ops tf, Reduction reduction)
Creates a Cosine Similarity Loss using
getSimpleName() as the loss name and an
axis of DEFAULT_AXIS |
|
|
CosineSimilarity(Ops tf, String name, Reduction reduction)
Creates a Cosine Similarity Loss using an axis of
DEFAULT_AXIS |
|
|
CosineSimilarity(Ops tf, int axis, Reduction reduction)
Creates a Cosine Similarity Loss using
getSimpleName() as the loss name |
|
|
CosineSimilarity(Ops tf, int[] axis, Reduction reduction)
Creates a Cosine Similarity Loss using
getSimpleName() as the loss name |
|
|
CosineSimilarity(Ops tf, String name, int axis, Reduction reduction)
Creates a Cosine Similarity Loss
|
|
|
CosineSimilarity(Ops tf, String name, int[] axis, Reduction reduction)
Creates a Cosine Similarity Loss
|
Public Methods
| <T extends TNumber> Operand<T> |
Inherited Methods
Constants
public static final int DEFAULT_AXIS
Fields
Public Constructors
public CosineSimilarity (Ops tf)
Creates a Cosine Similarity Loss using getSimpleName() as the loss name, an axis
of DEFAULT_AXIS, and a Loss Reduction of DEFAULT_REDUCTION
Parameters
| tf | the TensorFlow Ops |
|---|
public CosineSimilarity (Ops tf, String name)
Creates a Cosine Similarity Loss using an axis of DEFAULT_AXIS, and a Loss Reduction
of DEFAULT_REDUCTION
Parameters
| tf | the TensorFlow Ops |
|---|---|
| name | the name of the loss |
public CosineSimilarity (Ops tf, int axis)
Creates a Cosine Similarity Loss using getSimpleName() as the loss name, and a
Loss Reduction of DEFAULT_REDUCTION
Parameters
| tf | the TensorFlow Ops |
|---|---|
| axis | The dimension along which the cosine similarity is computed. |
public CosineSimilarity (Ops tf, int[] axis)
Creates a Cosine Similarity Loss using getSimpleName() as the loss name, and a
Loss Reduction of DEFAULT_REDUCTION
Parameters
| tf | the TensorFlow Ops |
|---|---|
| axis | The dimension along which the cosine similarity is computed. |
public CosineSimilarity (Ops tf, String name, int axis)
Creates a Cosine Similarity Loss using a Loss Reduction of DEFAULT_REDUCTION
Parameters
| tf | the TensorFlow Ops |
|---|---|
| name | the name of the loss |
| axis | The dimension along which the cosine similarity is computed. |
public CosineSimilarity (Ops tf, String name, int[] axis)
Creates a Cosine Similarity Loss using a Loss Reduction of DEFAULT_REDUCTION
Parameters
| tf | the TensorFlow Ops |
|---|---|
| name | the name of the loss |
| axis | The dimension along which the cosine similarity is computed. |
public CosineSimilarity (Ops tf, Reduction reduction)
Creates a Cosine Similarity Loss using getSimpleName() as the loss name and an
axis of DEFAULT_AXIS
Parameters
| tf | the TensorFlow Ops |
|---|---|
| reduction | Type of Reduction to apply to the loss. |
public CosineSimilarity (Ops tf, String name, Reduction reduction)
Creates a Cosine Similarity Loss using an axis of DEFAULT_AXIS
Parameters
| tf | the TensorFlow Ops |
|---|---|
| name | the name of the loss |
| reduction | Type of Reduction to apply to the loss. |
public CosineSimilarity (Ops tf, int axis, Reduction reduction)
Creates a Cosine Similarity Loss using getSimpleName() as the loss name
Parameters
| tf | the TensorFlow Ops |
|---|---|
| axis | The dimension along which the cosine similarity is computed. |
| reduction | Type of Reduction to apply to the loss. |
public CosineSimilarity (Ops tf, int[] axis, Reduction reduction)
Creates a Cosine Similarity Loss using getSimpleName() as the loss name
Parameters
| tf | the TensorFlow Ops |
|---|---|
| axis | The dimension along which the cosine similarity is computed. |
| reduction | Type of Reduction to apply to the loss. |
public CosineSimilarity (Ops tf, String name, int axis, Reduction reduction)
Creates a Cosine Similarity Loss
Parameters
| tf | the TensorFlow Ops |
|---|---|
| name | the name of the loss |
| axis | The dimension along which the cosine similarity is computed. |
| reduction | Type of Reduction to apply to the loss. |
public CosineSimilarity (Ops tf, String name, int[] axis, Reduction reduction)
Creates a Cosine Similarity Loss
Parameters
| tf | the TensorFlow Ops |
|---|---|
| name | the name of the loss |
| axis | The dimension along which the cosine similarity is computed. |
| 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