您的位置:首页 > 运维架构

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

2017-07-26 22:17 525 查看
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’))
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: