小编Dav*_*tan的帖子

计算TensorFlow中的交叉熵

我在计算张量流中的交叉熵时遇到了困难.特别是,我使用的功能:

tf.nn.softmax_cross_entropy_with_logits()
Run Code Online (Sandbox Code Playgroud)

使用看似简单的代码,我只能让它返回零

import tensorflow as tf
import numpy as np

sess = tf.InteractiveSession()

a = tf.placeholder(tf.float32, shape =[None, 1])
b = tf.placeholder(tf.float32, shape = [None, 1])
sess.run(tf.global_variables_initializer())
c = tf.nn.softmax_cross_entropy_with_logits(
    logits=b, labels=a
).eval(feed_dict={b:np.array([[0.45]]), a:np.array([[0.2]])})
print c
Run Code Online (Sandbox Code Playgroud)

回报

0
Run Code Online (Sandbox Code Playgroud)

我对交叉熵的理解如下:

H(p,q) = p(x)*log(q(x))
Run Code Online (Sandbox Code Playgroud)

其中p(x)是事件x的真实概率,q(x)是事件x的预测概率.

如果输入p(x)和q(x)的任何两个数字,则使用

0<p(x)<1 AND 0<q(x)<1
Run Code Online (Sandbox Code Playgroud)

应该有一个非零交叉熵.我期待我正在使用tensorflow错误.在此先感谢您的帮助.

python machine-learning tensorflow cross-entropy

8
推荐指数
2
解决办法
2万
查看次数