1. tf.nn.softmax_cross_entry_with_logits
NOTES:
其中,logits和labels必须是相同的shape和数据类型都必须相同,例如one-hot的形式,或者类one-hot的形式(当然结果没有one-hot那么明显)
2. tf.nn.sparse_softmax_cross_entroy_with_logits
NOTES:
这个就没有那么容易理解了,先举个例子吧
labels=[2,1]
如果用one-hot表示就是:
labels=[[0,0,1],[0,1,0]]
我们可以看到,这种编码方式降了维,注意这种分类是从0开始的,但是如果用这种编码的方式的话,我们就无法使用上面的这种方式,所以我们需要创建一种新的方式来处理这个问题,就是这样的来源。
所以,此时labels与logits的shape不相同。
3 还要注意一点就是,
计算交叉熵时,不论是使用sigmoid_cross_entropy_with_logits或者使用两种的时候,他都是将最后一步的激活函数也包括进去了,所以我们在最后输出的时候,不要使用过激活函数的输出