TensorFlow 1 version | View source on GitHub |
Computes softmax cross entropy between logits
and labels
.
tf.nn.softmax_cross_entropy_with_logits(
labels, logits, axis=-1, name=None
)
Measures the probability error in discrete classification tasks in which the classes are mutually exclusive (each entry is in exactly one class). For example, each CIFAR-10 image is labeled with one and only one label: an image can be a dog or a truck, but not both.
If using exclusive labels
(wherein one and only
one class is true at a time), see sparse_softmax_cross_entropy_with_logits
.
Usage:
logits = [[4.0, 2.0, 1.0], [0.0, 5.0, 1.0]] labels = [[1.0, 0.0, 0.0], [0.0, 0.8, 0.2]] tf.nn.softmax_cross_entropy_with_logits(labels=labels, logits=logits)
A common use case is to have logits and labels of shape
[batch_size, num_classes]
, but higher dimensions are supported, with
the axis
argument specifying the class dimension.
logits
and labels
must have the same dtype (either float16
, float32
,
or float64
).
Backpropagation will happen into both logits
and labels
. To disallow
backpropagation into labels
, pass label tensors through tf.stop_gradient
before feeding it to this function.
Note that to avoid confusion, it is required to pass only named arguments to this function.
Args | |
---|---|
labels
|
Each vector along the class dimension should hold a valid
probability distribution e.g. for the case in which labels are of shape
[batch_size, num_classes] , each row of labels[i] must be a valid
probability distribution.
|
logits
|
Per-label activations, typically a linear output. These activation energies are interpreted as unnormalized log probabilities. |
axis
|
The class dimension. Defaulted to -1 which is the last dimension. |
name
|
A name for the operation (optional). |
Returns | |
---|---|
A Tensor that contains the softmax cross entropy loss. Its type is the
same as logits and its shape is the same as labels except that it does
not have the last dimension of labels .
|