tensorflow中交叉熵的计算

    tf中用于计算交叉熵的主要是下面两个函数:

tf.nn.softmax_cross_entropy_with_logits(
    _sentinel=None,
    labels=None,
    logits=None,
    dim=-1,
    name=None
)
tf.nn.sparse_softmax_cross_entropy_with_logits(
    _sentinel=None,
    labels=None,
    logits=None,
    name=None
)

不过在tensorflow的官方说明中tf.nn.softmax_cross_entropy_with_logits已经被遗弃,建议不再使用,取而代之的是tf.nn.sparse_softmax_cross_entropy_with_logits。但既然是学习,就讲两者放到一起说吧。他们之间主要的区别就是输入参数labels的不同。tf.nn.softmax_cross_entropy_with_logits中labels的元素是非稀疏表示,而tf.nn.softmax_cross_entropy_with_logits中labels中的元素要用稀疏表示。什么意思?假设样本的总的分类数为5,某个样本i为第3类,那么i稀疏表示就是2(分类从0开始),非稀疏表示就是[0, 0, 1, 0, 0],说到底就是分类为5的one-hot编码。
tensorflow中交叉熵的计算_第1张图片

你可能感兴趣的:(tensorflow,Tensorflow实战)