def _loss(self, labels, logits):
float_labels = tf.cast(labels, tf.float32)
epsilon = tf.constant(value=1e-4)
softmax = tf.nn.softmax(logits) + epsilon
cross_entropy = -tf.reduce_sum(float_labels * tf.log(softmax), reduction_indices=[-1])
cross_entropy_mean = tf.reduce_mean(cross_entropy)
total_pixels = tf.constant(value=conf.width * conf.height, dtype=tf.float32)
valid_pixels = tf.reduce_sum(float_labels)
loss = tf.divide(tf.multiply(cross_entropy_mean, total_pixels), valid_pixels)
return loss
评论列表
文章目录