LostTech.TensorFlow : API Documentation

Type Loss

Namespace tensorflow.keras.losses

Parent PythonObjectContainer

Interfaces ILoss

Loss base class.

To be implemented by subclasses: * `call()`: Contains the logic for loss calculation using `y_true`, `y_pred`.

Example subclass implementation: ``` class MeanSquaredError(Loss): def call(self, y_true, y_pred): y_pred = ops.convert_to_tensor(y_pred) y_true = math_ops.cast(y_true, y_pred.dtype) return K.mean(math_ops.square(y_pred - y_true), axis=-1) ```

When used with tf.distribute.Strategy, outside of built-in training loops such as tf.keras `compile` and `fit`, please use 'SUM' or 'NONE' reduction types, and reduce losses explicitly in your training loop. Using 'AUTO' or 'SUM_OVER_BATCH_SIZE' will raise an error.

Please see https://www.tensorflow.org/alpha/tutorials/distribute/training_loops for more details on this.

You can implement 'SUM_OVER_BATCH_SIZE' using global batch size like: ``` with strategy.scope(): loss_obj = tf.keras.losses.CategoricalCrossentropy( reduction=tf.keras.losses.Reduction.NONE) .... loss = (tf.reduce_sum(loss_obj(labels, predictions)) * (1. / global_batch_size)) ```

Methods

Properties

Public instance methods

object __call__(ndarray y_true, ndarray y_pred, double sample_weight)

Invokes the `Loss` instance.
Parameters
ndarray y_true
Ground truth values. shape = `[batch_size, d0,.. dN]`
ndarray y_pred
The predicted values. shape = `[batch_size, d0,.. dN]`
double sample_weight
Optional `sample_weight` acts as a coefficient for the loss. If a scalar is provided, then the loss is simply scaled by the given value. If `sample_weight` 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 `sample_weight` vector. If the shape of `sample_weight` is `[batch_size, d0,.. dN-1]` (or can be broadcasted to this shape), then each loss element of `y_pred` is scaled by the corresponding value of `sample_weight`. (Note on`dN-1`: all loss functions reduce by 1 dimension, usually axis=-1.)
Returns
object
Weighted loss float `Tensor`. If `reduction` is `NONE`, this has shape `[batch_size, d0,.. dN-1]`; otherwise, it is scalar. (Note `dN-1` because all loss functions reduce by 1 dimension, usually axis=-1.)

object __call__(IGraphNodeBase y_true, IGraphNodeBase y_pred, double sample_weight)

Invokes the `Loss` instance.
Parameters
IGraphNodeBase y_true
Ground truth values. shape = `[batch_size, d0,.. dN]`
IGraphNodeBase y_pred
The predicted values. shape = `[batch_size, d0,.. dN]`
double sample_weight
Optional `sample_weight` acts as a coefficient for the loss. If a scalar is provided, then the loss is simply scaled by the given value. If `sample_weight` 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 `sample_weight` vector. If the shape of `sample_weight` is `[batch_size, d0,.. dN-1]` (or can be broadcasted to this shape), then each loss element of `y_pred` is scaled by the corresponding value of `sample_weight`. (Note on`dN-1`: all loss functions reduce by 1 dimension, usually axis=-1.)
Returns
object
Weighted loss float `Tensor`. If `reduction` is `NONE`, this has shape `[batch_size, d0,.. dN-1]`; otherwise, it is scalar. (Note `dN-1` because all loss functions reduce by 1 dimension, usually axis=-1.)

object __call__(IGraphNodeBase y_true, IEnumerable<IGraphNodeBase> y_pred, IGraphNodeBase sample_weight)

Invokes the `Loss` instance.
Parameters
IGraphNodeBase y_true
Ground truth values. shape = `[batch_size, d0,.. dN]`
IEnumerable<IGraphNodeBase> y_pred
The predicted values. shape = `[batch_size, d0,.. dN]`
IGraphNodeBase sample_weight
Optional `sample_weight` acts as a coefficient for the loss. If a scalar is provided, then the loss is simply scaled by the given value. If `sample_weight` 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 `sample_weight` vector. If the shape of `sample_weight` is `[batch_size, d0,.. dN-1]` (or can be broadcasted to this shape), then each loss element of `y_pred` is scaled by the corresponding value of `sample_weight`. (Note on`dN-1`: all loss functions reduce by 1 dimension, usually axis=-1.)
Returns
object
Weighted loss float `Tensor`. If `reduction` is `NONE`, this has shape `[batch_size, d0,.. dN-1]`; otherwise, it is scalar. (Note `dN-1` because all loss functions reduce by 1 dimension, usually axis=-1.)

object __call__(IGraphNodeBase y_true, IEnumerable<IGraphNodeBase> y_pred, int sample_weight)

Invokes the `Loss` instance.
Parameters
IGraphNodeBase y_true
Ground truth values. shape = `[batch_size, d0,.. dN]`
IEnumerable<IGraphNodeBase> y_pred
The predicted values. shape = `[batch_size, d0,.. dN]`
int sample_weight
Optional `sample_weight` acts as a coefficient for the loss. If a scalar is provided, then the loss is simply scaled by the given value. If `sample_weight` 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 `sample_weight` vector. If the shape of `sample_weight` is `[batch_size, d0,.. dN-1]` (or can be broadcasted to this shape), then each loss element of `y_pred` is scaled by the corresponding value of `sample_weight`. (Note on`dN-1`: all loss functions reduce by 1 dimension, usually axis=-1.)
Returns
object
Weighted loss float `Tensor`. If `reduction` is `NONE`, this has shape `[batch_size, d0,.. dN-1]`; otherwise, it is scalar. (Note `dN-1` because all loss functions reduce by 1 dimension, usually axis=-1.)

object __call__(IGraphNodeBase y_true, IEnumerable<IGraphNodeBase> y_pred, double sample_weight)

Invokes the `Loss` instance.
Parameters
IGraphNodeBase y_true
Ground truth values. shape = `[batch_size, d0,.. dN]`
IEnumerable<IGraphNodeBase> y_pred
The predicted values. shape = `[batch_size, d0,.. dN]`
double sample_weight
Optional `sample_weight` acts as a coefficient for the loss. If a scalar is provided, then the loss is simply scaled by the given value. If `sample_weight` 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 `sample_weight` vector. If the shape of `sample_weight` is `[batch_size, d0,.. dN-1]` (or can be broadcasted to this shape), then each loss element of `y_pred` is scaled by the corresponding value of `sample_weight`. (Note on`dN-1`: all loss functions reduce by 1 dimension, usually axis=-1.)
Returns
object
Weighted loss float `Tensor`. If `reduction` is `NONE`, this has shape `[batch_size, d0,.. dN-1]`; otherwise, it is scalar. (Note `dN-1` because all loss functions reduce by 1 dimension, usually axis=-1.)

object __call__(IGraphNodeBase y_true, ndarray y_pred, IGraphNodeBase sample_weight)

Invokes the `Loss` instance.
Parameters
IGraphNodeBase y_true
Ground truth values. shape = `[batch_size, d0,.. dN]`
ndarray y_pred
The predicted values. shape = `[batch_size, d0,.. dN]`
IGraphNodeBase sample_weight
Optional `sample_weight` acts as a coefficient for the loss. If a scalar is provided, then the loss is simply scaled by the given value. If `sample_weight` 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 `sample_weight` vector. If the shape of `sample_weight` is `[batch_size, d0,.. dN-1]` (or can be broadcasted to this shape), then each loss element of `y_pred` is scaled by the corresponding value of `sample_weight`. (Note on`dN-1`: all loss functions reduce by 1 dimension, usually axis=-1.)
Returns
object
Weighted loss float `Tensor`. If `reduction` is `NONE`, this has shape `[batch_size, d0,.. dN-1]`; otherwise, it is scalar. (Note `dN-1` because all loss functions reduce by 1 dimension, usually axis=-1.)

object __call__(IGraphNodeBase y_true, ndarray y_pred, int sample_weight)

Invokes the `Loss` instance.
Parameters
IGraphNodeBase y_true
Ground truth values. shape = `[batch_size, d0,.. dN]`
ndarray y_pred
The predicted values. shape = `[batch_size, d0,.. dN]`
int sample_weight
Optional `sample_weight` acts as a coefficient for the loss. If a scalar is provided, then the loss is simply scaled by the given value. If `sample_weight` 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 `sample_weight` vector. If the shape of `sample_weight` is `[batch_size, d0,.. dN-1]` (or can be broadcasted to this shape), then each loss element of `y_pred` is scaled by the corresponding value of `sample_weight`. (Note on`dN-1`: all loss functions reduce by 1 dimension, usually axis=-1.)
Returns
object
Weighted loss float `Tensor`. If `reduction` is `NONE`, this has shape `[batch_size, d0,.. dN-1]`; otherwise, it is scalar. (Note `dN-1` because all loss functions reduce by 1 dimension, usually axis=-1.)

object __call__(IGraphNodeBase y_true, ndarray y_pred, double sample_weight)

Invokes the `Loss` instance.
Parameters
IGraphNodeBase y_true
Ground truth values. shape = `[batch_size, d0,.. dN]`
ndarray y_pred
The predicted values. shape = `[batch_size, d0,.. dN]`
double sample_weight
Optional `sample_weight` acts as a coefficient for the loss. If a scalar is provided, then the loss is simply scaled by the given value. If `sample_weight` 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 `sample_weight` vector. If the shape of `sample_weight` is `[batch_size, d0,.. dN-1]` (or can be broadcasted to this shape), then each loss element of `y_pred` is scaled by the corresponding value of `sample_weight`. (Note on`dN-1`: all loss functions reduce by 1 dimension, usually axis=-1.)
Returns
object
Weighted loss float `Tensor`. If `reduction` is `NONE`, this has shape `[batch_size, d0,.. dN-1]`; otherwise, it is scalar. (Note `dN-1` because all loss functions reduce by 1 dimension, usually axis=-1.)

object __call__(ndarray y_true, IGraphNodeBase y_pred, IGraphNodeBase sample_weight)

Invokes the `Loss` instance.
Parameters
ndarray y_true
Ground truth values. shape = `[batch_size, d0,.. dN]`
IGraphNodeBase y_pred
The predicted values. shape = `[batch_size, d0,.. dN]`
IGraphNodeBase sample_weight
Optional `sample_weight` acts as a coefficient for the loss. If a scalar is provided, then the loss is simply scaled by the given value. If `sample_weight` 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 `sample_weight` vector. If the shape of `sample_weight` is `[batch_size, d0,.. dN-1]` (or can be broadcasted to this shape), then each loss element of `y_pred` is scaled by the corresponding value of `sample_weight`. (Note on`dN-1`: all loss functions reduce by 1 dimension, usually axis=-1.)
Returns
object
Weighted loss float `Tensor`. If `reduction` is `NONE`, this has shape `[batch_size, d0,.. dN-1]`; otherwise, it is scalar. (Note `dN-1` because all loss functions reduce by 1 dimension, usually axis=-1.)

object __call__(ndarray y_true, IGraphNodeBase y_pred, int sample_weight)

Invokes the `Loss` instance.
Parameters
ndarray y_true
Ground truth values. shape = `[batch_size, d0,.. dN]`
IGraphNodeBase y_pred
The predicted values. shape = `[batch_size, d0,.. dN]`
int sample_weight
Optional `sample_weight` acts as a coefficient for the loss. If a scalar is provided, then the loss is simply scaled by the given value. If `sample_weight` 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 `sample_weight` vector. If the shape of `sample_weight` is `[batch_size, d0,.. dN-1]` (or can be broadcasted to this shape), then each loss element of `y_pred` is scaled by the corresponding value of `sample_weight`. (Note on`dN-1`: all loss functions reduce by 1 dimension, usually axis=-1.)
Returns
object
Weighted loss float `Tensor`. If `reduction` is `NONE`, this has shape `[batch_size, d0,.. dN-1]`; otherwise, it is scalar. (Note `dN-1` because all loss functions reduce by 1 dimension, usually axis=-1.)

object __call__(ndarray y_true, IGraphNodeBase y_pred, double sample_weight)

Invokes the `Loss` instance.
Parameters
ndarray y_true
Ground truth values. shape = `[batch_size, d0,.. dN]`
IGraphNodeBase y_pred
The predicted values. shape = `[batch_size, d0,.. dN]`
double sample_weight
Optional `sample_weight` acts as a coefficient for the loss. If a scalar is provided, then the loss is simply scaled by the given value. If `sample_weight` 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 `sample_weight` vector. If the shape of `sample_weight` is `[batch_size, d0,.. dN-1]` (or can be broadcasted to this shape), then each loss element of `y_pred` is scaled by the corresponding value of `sample_weight`. (Note on`dN-1`: all loss functions reduce by 1 dimension, usually axis=-1.)
Returns
object
Weighted loss float `Tensor`. If `reduction` is `NONE`, this has shape `[batch_size, d0,.. dN-1]`; otherwise, it is scalar. (Note `dN-1` because all loss functions reduce by 1 dimension, usually axis=-1.)

object __call__(ndarray y_true, IEnumerable<IGraphNodeBase> y_pred, IGraphNodeBase sample_weight)

Invokes the `Loss` instance.
Parameters
ndarray y_true
Ground truth values. shape = `[batch_size, d0,.. dN]`
IEnumerable<IGraphNodeBase> y_pred
The predicted values. shape = `[batch_size, d0,.. dN]`
IGraphNodeBase sample_weight
Optional `sample_weight` acts as a coefficient for the loss. If a scalar is provided, then the loss is simply scaled by the given value. If `sample_weight` 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 `sample_weight` vector. If the shape of `sample_weight` is `[batch_size, d0,.. dN-1]` (or can be broadcasted to this shape), then each loss element of `y_pred` is scaled by the corresponding value of `sample_weight`. (Note on`dN-1`: all loss functions reduce by 1 dimension, usually axis=-1.)
Returns
object
Weighted loss float `Tensor`. If `reduction` is `NONE`, this has shape `[batch_size, d0,.. dN-1]`; otherwise, it is scalar. (Note `dN-1` because all loss functions reduce by 1 dimension, usually axis=-1.)

object __call__(ndarray y_true, IEnumerable<IGraphNodeBase> y_pred, int sample_weight)

Invokes the `Loss` instance.
Parameters
ndarray y_true
Ground truth values. shape = `[batch_size, d0,.. dN]`
IEnumerable<IGraphNodeBase> y_pred
The predicted values. shape = `[batch_size, d0,.. dN]`
int sample_weight
Optional `sample_weight` acts as a coefficient for the loss. If a scalar is provided, then the loss is simply scaled by the given value. If `sample_weight` 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 `sample_weight` vector. If the shape of `sample_weight` is `[batch_size, d0,.. dN-1]` (or can be broadcasted to this shape), then each loss element of `y_pred` is scaled by the corresponding value of `sample_weight`. (Note on`dN-1`: all loss functions reduce by 1 dimension, usually axis=-1.)
Returns
object
Weighted loss float `Tensor`. If `reduction` is `NONE`, this has shape `[batch_size, d0,.. dN-1]`; otherwise, it is scalar. (Note `dN-1` because all loss functions reduce by 1 dimension, usually axis=-1.)

object __call__(ndarray y_true, IEnumerable<IGraphNodeBase> y_pred, double sample_weight)

Invokes the `Loss` instance.
Parameters
ndarray y_true
Ground truth values. shape = `[batch_size, d0,.. dN]`
IEnumerable<IGraphNodeBase> y_pred
The predicted values. shape = `[batch_size, d0,.. dN]`
double sample_weight
Optional `sample_weight` acts as a coefficient for the loss. If a scalar is provided, then the loss is simply scaled by the given value. If `sample_weight` 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 `sample_weight` vector. If the shape of `sample_weight` is `[batch_size, d0,.. dN-1]` (or can be broadcasted to this shape), then each loss element of `y_pred` is scaled by the corresponding value of `sample_weight`. (Note on`dN-1`: all loss functions reduce by 1 dimension, usually axis=-1.)
Returns
object
Weighted loss float `Tensor`. If `reduction` is `NONE`, this has shape `[batch_size, d0,.. dN-1]`; otherwise, it is scalar. (Note `dN-1` because all loss functions reduce by 1 dimension, usually axis=-1.)

object __call__(ndarray y_true, ndarray y_pred, IGraphNodeBase sample_weight)

Invokes the `Loss` instance.
Parameters
ndarray y_true
Ground truth values. shape = `[batch_size, d0,.. dN]`
ndarray y_pred
The predicted values. shape = `[batch_size, d0,.. dN]`
IGraphNodeBase sample_weight
Optional `sample_weight` acts as a coefficient for the loss. If a scalar is provided, then the loss is simply scaled by the given value. If `sample_weight` 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 `sample_weight` vector. If the shape of `sample_weight` is `[batch_size, d0,.. dN-1]` (or can be broadcasted to this shape), then each loss element of `y_pred` is scaled by the corresponding value of `sample_weight`. (Note on`dN-1`: all loss functions reduce by 1 dimension, usually axis=-1.)
Returns
object
Weighted loss float `Tensor`. If `reduction` is `NONE`, this has shape `[batch_size, d0,.. dN-1]`; otherwise, it is scalar. (Note `dN-1` because all loss functions reduce by 1 dimension, usually axis=-1.)

object __call__(ndarray y_true, ndarray y_pred, int sample_weight)

Invokes the `Loss` instance.
Parameters
ndarray y_true
Ground truth values. shape = `[batch_size, d0,.. dN]`
ndarray y_pred
The predicted values. shape = `[batch_size, d0,.. dN]`
int sample_weight
Optional `sample_weight` acts as a coefficient for the loss. If a scalar is provided, then the loss is simply scaled by the given value. If `sample_weight` 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 `sample_weight` vector. If the shape of `sample_weight` is `[batch_size, d0,.. dN-1]` (or can be broadcasted to this shape), then each loss element of `y_pred` is scaled by the corresponding value of `sample_weight`. (Note on`dN-1`: all loss functions reduce by 1 dimension, usually axis=-1.)
Returns
object
Weighted loss float `Tensor`. If `reduction` is `NONE`, this has shape `[batch_size, d0,.. dN-1]`; otherwise, it is scalar. (Note `dN-1` because all loss functions reduce by 1 dimension, usually axis=-1.)

object __call__(IGraphNodeBase y_true, IGraphNodeBase y_pred, int sample_weight)

Invokes the `Loss` instance.
Parameters
IGraphNodeBase y_true
Ground truth values. shape = `[batch_size, d0,.. dN]`
IGraphNodeBase y_pred
The predicted values. shape = `[batch_size, d0,.. dN]`
int sample_weight
Optional `sample_weight` acts as a coefficient for the loss. If a scalar is provided, then the loss is simply scaled by the given value. If `sample_weight` 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 `sample_weight` vector. If the shape of `sample_weight` is `[batch_size, d0,.. dN-1]` (or can be broadcasted to this shape), then each loss element of `y_pred` is scaled by the corresponding value of `sample_weight`. (Note on`dN-1`: all loss functions reduce by 1 dimension, usually axis=-1.)
Returns
object
Weighted loss float `Tensor`. If `reduction` is `NONE`, this has shape `[batch_size, d0,.. dN-1]`; otherwise, it is scalar. (Note `dN-1` because all loss functions reduce by 1 dimension, usually axis=-1.)

object __call__(IGraphNodeBase y_true, IGraphNodeBase y_pred, IGraphNodeBase sample_weight)

Invokes the `Loss` instance.
Parameters
IGraphNodeBase y_true
Ground truth values. shape = `[batch_size, d0,.. dN]`
IGraphNodeBase y_pred
The predicted values. shape = `[batch_size, d0,.. dN]`
IGraphNodeBase sample_weight
Optional `sample_weight` acts as a coefficient for the loss. If a scalar is provided, then the loss is simply scaled by the given value. If `sample_weight` 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 `sample_weight` vector. If the shape of `sample_weight` is `[batch_size, d0,.. dN-1]` (or can be broadcasted to this shape), then each loss element of `y_pred` is scaled by the corresponding value of `sample_weight`. (Note on`dN-1`: all loss functions reduce by 1 dimension, usually axis=-1.)
Returns
object
Weighted loss float `Tensor`. If `reduction` is `NONE`, this has shape `[batch_size, d0,.. dN-1]`; otherwise, it is scalar. (Note `dN-1` because all loss functions reduce by 1 dimension, usually axis=-1.)

Public properties

string name get; set;

object PythonObject get;

string reduction get; set;