import tensorflow as tf
from random import randint
dims = 8
pos = randint(0, dims - 1)
logits = tf.random_uniform([dims], maxval=3, dtype=tf.float32)
labels = tf.one_hot(pos, dims)
res1 = tf.nn.softmax_cross_entropy_with_logits(logits=logits, labels=labels)
res2 = tf.nn.sparse_softmax_cross_entropy_with_logits(logits=logits, labels=tf.constant(pos))
with tf.Session() as sess:
a, b = sess.run([res1, res2])
print a, b
print a == b
tf.nn.softmax_cross_entropy_with_logits 中label输入的是一个one_hot型
tf.nn.sparse_softmax_cross_entropy_with_logits 中label输入的是int型
另外,这两个数值相等
cross_entropy1 = -tf.reduce_sum(y_*tf.log(y_conv))
cross_entropy = tf.reduce_sum(tf.nn.softmax_cross_entropy_with_logits(labels=y_,
logits=tf.matmul(h_fc1_drop, W_fc2) + b_fc2, name=’xentropy’))