Losses (contrib)
[TOC]
Ops for building neural network losses.
Other Functions and Classes
tf.contrib.losses.absolute_difference(predictions, targets, weight=1.0, scope=None)
Adds an Absolute Difference loss to the training procedure.
weight acts as a coefficient for the loss. If a scalar is provided, then the
loss is simply scaled by the given value. If 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 weight vector. If the shape of
weight matches the shape of predictions, then the loss of each
measurable element of predictions is scaled by the corresponding value of
weight.
Args:
predictions: The predicted outputs.targets: The ground truth output tensor, same dimensions as 'predictions'.weight: Coefficients for the loss a scalar, a tensor of shape [batch_size] or a tensor whose shape matchespredictions.scope: The scope for the operations performed in computing the loss.
Returns:
A scalar Tensor representing the loss value.
Raises:
ValueError: If the shape ofpredictionsdoesn't match that oftargetsor if the shape ofweightis invalid.
tf.contrib.losses.add_loss(*args, **kwargs)
Adds a externally defined loss to the collection of losses.
Args:
loss: A lossTensor.loss_collection: Optional collection to add the loss to.
tf.contrib.losses.compute_weighted_loss(losses, weight=1.0)
Computes the weighted loss.
Args:
losses: A tensor of size [batch_size, d1, ... dN].weight: A tensor of size [1] or [batch_size, d1, ... dK] where K < N.
Returns:
A scalar Tensor that returns the weighted loss.
Raises:
ValueError: If the weight is None or the shape is not compatible with the losses shape or if the number of dimensions (rank) of either losses or weight is missing.
tf.contrib.losses.cosine_distance(predictions, targets, dim, weight=1.0, scope=None)
Adds a cosine-distance loss to the training procedure.
Note that the function assumes that the predictions and targets are already unit-normalized.
Args:
predictions: An arbitrary matrix.targets: ATensorwhose shape matches 'predictions'dim: The dimension along which the cosine distance is computed.weight: Coefficients for the loss a scalar, a tensor of shape [batch_size] or a tensor whose shape matchespredictions.scope: The scope for the operations performed in computing the loss.
Returns:
A scalar Tensor representing the loss value.
Raises:
ValueError: If predictions.shape doesn't match targets.shape, if the ignoremask is provided and its shape doesn't match targets.shape or if the ignore mask is not boolean valued.
tf.contrib.losses.get_losses(scope=None, loss_collection='losses')
Gets the list of losses from the loss_collection.
Args:
scope: an optional scope for filtering the losses to return.loss_collection: Optional losses collection.
Returns:
a list of loss tensors.
tf.contrib.losses.get_regularization_losses(scope=None)
Gets the regularization losses.
Args:
scope: an optional scope for filtering the losses to return.
Returns:
A list of loss variables.
tf.contrib.losses.get_total_loss(add_regularization_losses=True, name='total_loss')
Returns a tensor whose value represents the total loss.
Notice that the function adds the given losses to the regularization losses.
Args:
add_regularization_losses: A boolean indicating whether or not to use the regularization losses in the sum.name: The name of the returned tensor.
Returns:
A Tensor whose value represents the total loss.
Raises:
ValueError: iflossesis not iterable.
tf.contrib.losses.hinge_loss(logits, target, scope=None)
Method that returns the loss tensor for hinge loss.
Args:
logits: The logits, a float tensor.target: The ground truth output tensor. Its shape should match the shape of logits. The values of the tensor are expected to be 0.0 or 1.0.scope: The scope for the operations performed in computing the loss.
Returns:
A Tensor of same shape as logits and target representing the loss values
across the batch.
Raises:
ValueError: If the shapes oflogitsandtargetdon't match.
tf.contrib.losses.log_loss(predictions, targets, weight=1.0, epsilon=1e-07, scope=None)
Adds a Log Loss term to the training procedure.
weight acts as a coefficient for the loss. If a scalar is provided, then the
loss is simply scaled by the given value. If 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 weight vector. If the shape of
weight matches the shape of predictions, then the loss of each
measurable element of predictions is scaled by the corresponding value of
weight.
Args:
predictions: The predicted outputs.targets: The ground truth output tensor, same dimensions as 'predictions'.weight: Coefficients for the loss a scalar, a tensor of shape [batch_size] or a tensor whose shape matchespredictions.epsilon: A small increment to add to avoid taking a log of zero.scope: The scope for the operations performed in computing the loss.
Returns:
A scalar Tensor representing the loss value.
Raises:
ValueError: If the shape ofpredictionsdoesn't match that oftargetsor if the shape ofweightis invalid.
tf.contrib.losses.mean_pairwise_squared_error(*args, **kwargs)
Adds a pairwise-errors-squared loss to the training procedure. (deprecated)
THIS FUNCTION IS DEPRECATED. It will be removed after 2016-10-01. Instructions for updating: Use mean_pairwise_squared_error.
Unlike the sum_of_squares loss, which is a measure of the differences between
corresponding elements of predictions and targets, sum_of_pairwise_squares
is a measure of the differences between pairs of corresponding elements of
predictions and targets.
For example, if targets=[a, b, c] and predictions=[x, y, z], there are
three pairs of differences are summed to compute the loss:
loss = [ ((a-b) - (x-y)).^2 + ((a-c) - (x-z)).^2 + ((b-c) - (y-z)).^2 ] / 3
Note that since the inputs are of size [batch_size, d0, ... dN], the
corresponding pairs are computed within each batch sample but not across
samples within a batch. For example, if predictions represents a batch of
16 grayscale images of dimension [batch_size, 100, 200], then the set of pairs
is drawn from each image, but not across images.
weight acts as a coefficient for the loss. If a scalar is provided, then the
loss is simply scaled by the given value. If 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 weight vector.
Args:
predictions: The predicted outputs, a tensor of size [batch_size, d0, .. dN]
where N+1 is the total number of dimensions in predictions.
targets: The ground truth output tensor, whose shape must match the shape of
the predictions tensor.
weight: Coefficients for the loss a scalar, a tensor of shape [batch_size]
or a tensor whose shape matches predictions.
scope: The scope for the operations performed in computing the loss.
Returns:
A scalar Tensor representing the loss value.
Raises:
ValueError: If the shape of predictions doesn't match that of targets or
if the shape of weight is invalid.
tf.contrib.losses.mean_squared_error(*args, **kwargs)
Adds a Sum-of-Squares loss to the training procedure. (deprecated)
THIS FUNCTION IS DEPRECATED. It will be removed after 2016-10-01. Instructions for updating: Use mean_squared_error.
weight acts as a coefficient for the loss. If a scalar is provided, then the
loss is simply scaled by the given value. If 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 weight vector. If the shape of
weight matches the shape of predictions, then the loss of each
measurable element of predictions is scaled by the corresponding value of
weight.
Args:
predictions: The predicted outputs.
targets: The ground truth output tensor, same dimensions as 'predictions'.
weight: Coefficients for the loss a scalar, a tensor of shape
[batch_size] or a tensor whose shape matches predictions.
scope: The scope for the operations performed in computing the loss.
Returns:
A scalar Tensor representing the loss value.
Raises:
ValueError: If the shape of predictions doesn't match that of targets or
if the shape of weight is invalid.
tf.contrib.losses.sigmoid_cross_entropy(logits, multi_class_labels, weight=1.0, label_smoothing=0, scope=None)
Creates a cross-entropy loss using tf.nn.sigmoid_cross_entropy_with_logits.
weight acts as a coefficient for the loss. If a scalar is provided,
then the loss is simply scaled by the given value. If weight is a
tensor of size [batch_size], then the loss weights apply to each
corresponding sample.
If label_smoothing is nonzero, smooth the labels towards 1/2:
new_multiclass_labels = multiclass_labels * (1 - label_smoothing)
+ 0.5 * label_smoothing
Args:
logits: [batch_size, num_classes] logits outputs of the network .multi_class_labels: [batch_size, num_classes] target labels in (0, 1).weight: Coefficients for the loss. The tensor must be a scalar, a tensor of shape [batch_size] or shape [batch_size, num_classes].label_smoothing: If greater than 0 then smooth the labels.scope: The scope for the operations performed in computing the loss.
Returns:
A scalar Tensor representing the loss value.
Raises:
ValueError: If the shape ofpredictionsdoesn't match that oftargetsor if the shape ofweightis invalid or ifweightis None.
tf.contrib.losses.softmax_cross_entropy(logits, onehot_labels, weight=1.0, label_smoothing=0, scope=None)
Creates a cross-entropy loss using tf.nn.softmax_cross_entropy_with_logits.
weight acts as a coefficient for the loss. If a scalar is provided,
then the loss is simply scaled by the given value. If weight is a
tensor of size [batch_size], then the loss weights apply to each
corresponding sample.
If label_smoothing is nonzero, smooth the labels towards 1/num_classes:
new_onehot_labels = onehot_labels * (1 - label_smoothing)
+ label_smoothing / num_classes
Args:
logits: [batch_size, num_classes] logits outputs of the network .onehot_labels: [batch_size, num_classes] target one_hot_encoded labels.weight: Coefficients for the loss. The tensor must be a scalar or a tensor of shape [batch_size].label_smoothing: If greater than 0 then smooth the labels.scope: the scope for the operations performed in computing the loss.
Returns:
A scalar Tensor representing the loss value.
Raises:
ValueError: If the shape oflogitsdoesn't match that ofonehot_labelsor if the shape ofweightis invalid or ifweightis None.
tf.contrib.losses.sparse_softmax_cross_entropy(logits, labels, weight=1.0, scope=None)
Cross-entropy loss using tf.nn.sparse_softmax_cross_entropy_with_logits.
weight acts as a coefficient for the loss. If a scalar is provided,
then the loss is simply scaled by the given value. If weight is a
tensor of size [batch_size], then the loss weights apply to each
corresponding sample.
Args:
logits: [batch_size, num_classes] logits outputs of the network .labels: [batch_size, 1] or [batch_size] target labels of dtypeint32orint64in the range[0, num_classes).weight: Coefficients for the loss. The tensor must be a scalar or a tensor of shape [batch_size] or [batch_size, 1].scope: the scope for the operations performed in computing the loss.
Returns:
A scalar Tensor representing the loss value.
Raises:
ValueError: If the shapes of logits, labels, and weight are incompatible, or ifweightis None.
tf.contrib.losses.sum_of_pairwise_squares(*args, **kwargs)
Adds a pairwise-errors-squared loss to the training procedure. (deprecated)
THIS FUNCTION IS DEPRECATED. It will be removed after 2016-10-01. Instructions for updating: Use mean_pairwise_squared_error.
Unlike the sum_of_squares loss, which is a measure of the differences between
corresponding elements of predictions and targets, sum_of_pairwise_squares
is a measure of the differences between pairs of corresponding elements of
predictions and targets.
For example, if targets=[a, b, c] and predictions=[x, y, z], there are
three pairs of differences are summed to compute the loss:
loss = [ ((a-b) - (x-y)).^2 + ((a-c) - (x-z)).^2 + ((b-c) - (y-z)).^2 ] / 3
Note that since the inputs are of size [batch_size, d0, ... dN], the
corresponding pairs are computed within each batch sample but not across
samples within a batch. For example, if predictions represents a batch of
16 grayscale images of dimension [batch_size, 100, 200], then the set of pairs
is drawn from each image, but not across images.
weight acts as a coefficient for the loss. If a scalar is provided, then the
loss is simply scaled by the given value. If 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 weight vector.
Args:
predictions: The predicted outputs, a tensor of size [batch_size, d0, .. dN]
where N+1 is the total number of dimensions in predictions.
targets: The ground truth output tensor, whose shape must match the shape of
the predictions tensor.
weight: Coefficients for the loss a scalar, a tensor of shape [batch_size]
or a tensor whose shape matches predictions.
scope: The scope for the operations performed in computing the loss.
Returns:
A scalar Tensor representing the loss value.
Raises:
ValueError: If the shape of predictions doesn't match that of targets or
if the shape of weight is invalid.
tf.contrib.losses.sum_of_squares(*args, **kwargs)
Adds a Sum-of-Squares loss to the training procedure. (deprecated)
THIS FUNCTION IS DEPRECATED. It will be removed after 2016-10-01. Instructions for updating: Use mean_squared_error.
weight acts as a coefficient for the loss. If a scalar is provided, then the
loss is simply scaled by the given value. If 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 weight vector. If the shape of
weight matches the shape of predictions, then the loss of each
measurable element of predictions is scaled by the corresponding value of
weight.
Args:
predictions: The predicted outputs.
targets: The ground truth output tensor, same dimensions as 'predictions'.
weight: Coefficients for the loss a scalar, a tensor of shape
[batch_size] or a tensor whose shape matches predictions.
scope: The scope for the operations performed in computing the loss.
Returns:
A scalar Tensor representing the loss value.
Raises:
ValueError: If the shape of predictions doesn't match that of targets or
if the shape of weight is invalid.