对比两个函数tf.nn.softmax_cross_entropy_with_logits和tf.nn.sparse_softmax_cross_entropy_with_logits

来源:互联网 发布:协方差矩阵退化 编辑:程序博客网 时间:2024/05/18 11:45
import tensorflow as tffrom random import randintdims = 8pos  = 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’))

阅读全文
0 0
原创粉丝点击