我在計算張量流中的交叉熵方面很困難。特別是,我使用的功能:在張量流中計算交叉熵
tf.nn.softmax_cross_entropy_with_logits()
使用的是看似簡單的代碼,我只能得到它返回一個零
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
回報
0
我的理解交叉熵如下:
H(p,q) = p(x)*log(q(x))
其中p(x)是事件x的真實概率,q(x)是事件x的預測概率。
如果有輸入的任何兩個數值爲P(X)和q(x)的使用,使得
0<p(x)<1 AND 0<q(x)<1
應該有一個非零交叉熵。我期待着我正在使用張量流。預先感謝您的幫助。
於是,有趣的是我得到了使用交叉熵從這個項目的想法: https://github.com/carpedm20/DCGAN-tensorflow/blob/master/model.py他們正在使用它 到確定樣本是否來自實際分佈。然而,似乎二元softmax迴歸與邏輯迴歸相同。 –