Tensorflow में CIFAR-10 को वर्गीकृत करने के बारे में एक उदाहरण ट्यूटोरियल है । ट्यूटोरियल में बैच भर में औसत क्रॉस एन्ट्रापी नुकसान को कम किया जाता है।
def loss(logits, labels):
"""Add L2Loss to all the trainable variables.
Add summary for for "Loss" and "Loss/avg".
Args:
logits: Logits from inference().
labels: Labels from distorted_inputs or inputs(). 1-D tensor
of shape [batch_size]
Returns:
Loss tensor of type float.
"""
# Calculate the average cross entropy loss across the batch.
labels = tf.cast(labels, tf.int64)
cross_entropy = tf.nn.sparse_softmax_cross_entropy_with_logits(
logits, labels, name='cross_entropy_per_example')
cross_entropy_mean = tf.reduce_mean(cross_entropy, name='cross_entropy')
tf.add_to_collection('losses', cross_entropy_mean)
# The total loss is defined as the cross entropy loss plus all of the weight
# decay terms (L2 loss).
return tf.add_n(tf.get_collection('losses'), name='total_loss')
Cifar10.py देखें , लाइन 267।
इसके बजाय यह पूरे बैच में योग को न्यूनतम क्यों नहीं करता है? क्या इससे कोई फर्क पड़ता है? मुझे समझ में नहीं आता है कि यह बैकप्रॉप गणना को कैसे प्रभावित करेगा।