Built-in loss functions.
Constants
int | CHANNELS_FIRST | |
int | CHANNELS_LAST | |
float | EPSILON | Default Fuzz factor. |
Public Constructors
Losses()
|
Public Methods
static <T extends TNumber> Operand<T> |
binaryCrossentropy(Ops tf, Operand<? extends TNumber> labels, Operand<T> predictions, boolean fromLogits, float labelSmoothing)
Computes the binary crossentropy loss between labels and predictions.
|
static <T extends TNumber> Operand<T> |
categoricalCrossentropy(Ops tf, Operand<? extends TNumber> labels, Operand<T> predictions, boolean fromLogits, float labelSmoothing, int axis)
Computes the categorical crossentropy loss between labels and predictions.
|
static <T extends TNumber> Operand<T> |
categoricalHinge(Ops tf, Operand<? extends TNumber> labels, Operand<T> predictions)
Computes the categorical hinge loss between labels and predictions.
|
static <T extends TNumber> Operand<T> |
cosineSimilarity(Ops tf, Operand<? extends TNumber> labels, Operand<T> predictions, int[] axis)
Computes the cosine similarity loss between labels and predictions.
|
static <T extends TNumber> Operand<T> | |
static <T extends TNumber> Operand<T> | |
static <T extends TNumber> Operand<T> |
kullbackLeiblerDivergence(Ops tf, Operand<? extends TNumber> labels, Operand<T> predictions)
Computes the Kullback-Leibler divergence loss between labels and predictions.
|
static <T extends TNumber> Operand<T> | |
static <T extends TNumber> Operand<T> | |
static <T extends TNumber> Operand<T> |
meanAbsoluteError(Ops tf, Operand<? extends TNumber> labels, Operand<T> predictions)
Calculates the mean absolute error between labels and predictions.
|
static <T extends TNumber> Operand<T> |
meanAbsolutePercentageError(Ops tf, Operand<? extends TNumber> labels, Operand<T> predictions)
Calculates the mean absolute percentage error between labels and predictions.
|
static <T extends TNumber> Operand<T> |
meanSquaredError(Ops tf, Operand<? extends TNumber> labels, Operand<T> predictions)
Computes the mean squared error between labels and predictions.
|
static <T extends TNumber> Operand<T> |
meanSquaredLogarithmicError(Ops tf, Operand<? extends TNumber> labels, Operand<T> predictions)
Calculates the mean squared logarithmic error between labels and predictions.
|
static <T extends TNumber> Operand<T> | |
static <T extends TNumber> Operand<T> |
sparseCategoricalCrossentropy(Ops tf, Operand<? extends TNumber> labels, Operand<T> predictions, boolean fromLogits, int axis)
Computes the sparse categorical crossentropy loss between labels and predictions.
|
static <T extends TNumber> Operand<T> |
squaredHinge(Ops tf, Operand<? extends TNumber> labels, Operand<T> predictions)
Computes the squared hinge loss between labels and predictions.
|
Inherited Methods
Constants
public static final int CHANNELS_FIRST
public static final int CHANNELS_LAST
public static final float EPSILON
Default Fuzz factor.
Public Constructors
public Losses ()
Public Methods
public static Operand<T> binaryCrossentropy (Ops tf, Operand<? extends TNumber> labels, Operand<T> predictions, boolean fromLogits, float labelSmoothing)
Computes the binary crossentropy loss between labels and predictions.
Parameters
tf | the TensorFlow Ops |
---|---|
labels | true targets |
predictions | the predictions |
fromLogits | Whether to interpret predictions as a tensor of logit values |
labelSmoothing | A number in the range [0, 1]. When 0, no smoothing occurs. When > 0, compute the loss between the predicted labels and a smoothed version of the true labels, where the smoothing squeezes the labels towards 0.5. Larger values of labelSmoothing correspond to heavier smoothing. |
Returns
- the binary crossentropy loss.
public static Operand<T> categoricalCrossentropy (Ops tf, Operand<? extends TNumber> labels, Operand<T> predictions, boolean fromLogits, float labelSmoothing, int axis)
Computes the categorical crossentropy loss between labels and predictions.
Parameters
tf | the TensorFlow Ops |
---|---|
labels | true targets |
predictions | the predictions |
fromLogits | Whether to interpret predictions as a tensor of logit values |
labelSmoothing | Float in [0, 1] . When > 0 , label values are
smoothed, meaning the confidence on label values are relaxed. e.g. labelSmoothing=0.2
means that we will use a value of 0.1 for label 0 and
0.9 for label 1 |
axis | the |
Returns
- the categorical crossentropy loss.
public static Operand<T> categoricalHinge (Ops tf, Operand<? extends TNumber> labels, Operand<T> predictions)
Computes the categorical hinge loss between labels and predictions.
Parameters
tf | the TensorFlow Ops |
---|---|
labels | true targets, values are expected to be 0 or 1. |
predictions | the predictions |
Returns
- the categorical hinge loss
public static Operand<T> cosineSimilarity (Ops tf, Operand<? extends TNumber> labels, Operand<T> predictions, int[] axis)
Computes the cosine similarity loss between labels and predictions.
Note that it is a number between -1
and 1
, which is different from
the mathematical definition of cosine similarity where 1
represents similar
vectors, and 0
represents dissimilar vectors. In this function, the numbers are
inverted in a range of -1
to 1
. When it is a negative number between
-1
and 0
, 0
indicates orthogonality and values closer to
-1
indicate 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))
Parameters
tf | the TensorFlow Ops |
---|---|
labels | true targets |
predictions | the predictions |
axis | Axis along which to determine similarity. |
Returns
- the cosine similarity loss
public static Operand<T> hinge (Ops tf, Operand<? extends TNumber> labels, Operand<T> predictions)
Computes the hinge loss between labels and predictions
loss = reduceMean(maximum(1 - labels * predictions, 0))
Parameters
tf | the TensorFlow Ops |
---|---|
labels | true targets, 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 |
Returns
- the hinge loss
public static Operand<T> huber (Ops tf, Operand<? extends TNumber> labels, Operand<T> predictions, float delta)
Computes the Huber loss between labels and predictions.
For each value x in error = labels - predictions:
loss = 0.5 * x^2 if |x| <= d loss = 0.5 * d^2 + d * (|x| - d) if |x| > d
where d is delta.
Parameters
tf | the TensorFlow Ops |
---|---|
labels | true targets |
predictions | the predictions |
delta | the point where the Huber loss function changes from quadratic to linear. |
Returns
- the Huber loss
public static Operand<T> kullbackLeiblerDivergence (Ops tf, Operand<? extends TNumber> labels, Operand<T> predictions)
Computes the Kullback-Leibler divergence loss between labels and predictions.
Parameters
tf | the TensorFlow Ops |
---|---|
labels | true targets |
predictions | the predictions |
Returns
- the Kullback-Leibler divergence loss
See Also
public static Operand<T> l2Normalize (Ops tf, Operand<T> x, int[] axis)
Normalizes along dimension axis using an L2 norm.
Parameters
tf | The TensorFlow Ops |
---|---|
x | the input |
axis | Dimension along which to normalize. |
Returns
- the normalized values based on L2 norm
public static Operand<T> logCosh (Ops tf, Operand<? extends TNumber> labels, Operand<T> predictions)
Computes the hyperbolic cosine loss between labels and predictions.
log(cosh(x))
is approximately equal to (x ** 2) / 2
for small
x
and to abs(x) - log(2)
for large x
. This means that
'logCosh' works mostly like the mean squared error, but will not be so strongly affected by the
occasional wildly incorrect prediction.
Parameters
tf | the TensorFlow Ops |
---|---|
labels | true targets |
predictions | the predictions |
Returns
- the hyperbolic cosine divergence loss
public static Operand<T> meanAbsoluteError (Ops tf, Operand<? extends TNumber> labels, Operand<T> predictions)
Calculates the mean absolute error between labels and predictions.
loss = reduceMean(abs(labels - predictions))
Parameters
tf | The TensorFlow Ops |
---|---|
labels | the labels |
predictions | the predictions |
Returns
- the mean absolute error
public static Operand<T> meanAbsolutePercentageError (Ops tf, Operand<? extends TNumber> labels, Operand<T> predictions)
Calculates the mean absolute percentage error between labels and predictions.
loss = 100 * reduceMean(abs((labels - predictions) / labels))
Parameters
tf | The TensorFlow Ops |
---|---|
labels | the labels |
predictions | the predictions |
Returns
- the mean absolute percentage error
public static Operand<T> meanSquaredError (Ops tf, Operand<? extends TNumber> labels, Operand<T> predictions)
Computes the mean squared error between labels and predictions.
loss = reduceMean(square(labels - predictions))
Parameters
tf | The TensorFlow Ops |
---|---|
labels | the labels |
predictions | the predictions |
Returns
- the mean squared error
public static Operand<T> meanSquaredLogarithmicError (Ops tf, Operand<? extends TNumber> labels, Operand<T> predictions)
Calculates the mean squared logarithmic error between labels and predictions.
loss = reduceMean(square(log(labels + 1) - log(predictions + 1)))
Parameters
tf | The TensorFlow Ops |
---|---|
labels | the labels |
predictions | the predictions |
Returns
- the mean squared logarithmic percentage error
public static Operand<T> poisson (Ops tf, Operand<? extends TNumber> labels, Operand<T> predictions)
Computes the Poisson loss between labels and predictions.
The Poisson loss is the mean of the elements of the Tensor
predictions - labels * log(predictions)
.
Parameters
tf | the TensorFlow Ops |
---|---|
labels | true targets |
predictions | the predictions |
Returns
- the Poisson loss
public static Operand<T> sparseCategoricalCrossentropy (Ops tf, Operand<? extends TNumber> labels, Operand<T> predictions, boolean fromLogits, int axis)
Computes the sparse categorical crossentropy loss between labels and predictions.
Parameters
tf | the TensorFlow Ops |
---|---|
labels | true targets |
predictions | the predictions |
fromLogits | Whether predictions is expected to be logits. By default, it is assumed that predictions encodes a probability distribution. |
axis | The dimension along which the entropy is computed. |
Returns
- the sparse categorical crossentropy loss
public static Operand<T> squaredHinge (Ops tf, Operand<? extends TNumber> labels, Operand<T> predictions)
Computes the squared hinge loss between labels and predictions.
loss = reduceMean(square(maximum(1 - labels * predictions, 0)))
Parameters
tf | the TensorFlow Ops |
---|---|
labels | true targets, 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 |
Returns
- the squared hinge loss