2017-10-21 60 views
0

我試圖在一些git示例和教程的幫助下進入Tensorflow基礎知識,但是我被卡在了不能繪製Gaussian Distribution圖的部分是我所做的。tf.mul和tf.sqrt中的不確定參數

x = tf.lin_space(-3.0, 3.0, 32) 

sess = tf.InteractiveSession() 

s = 0 
mean = 0 
gauss = (tf.exp(tf.negative(tf.pow(x - mean, 2)/(2 * tf.pow(s, 2)))) * (1.0/(s * tf.sqrt(2 * 3.1415)))) 
plt.plot(x.eval(), gauss.eval()) 
plt.show() 

我是越來越TypeError最初是因爲浮法論點,即2.0而不是2 tf.pow()我甚至試圖改變類型,但tf.to_float()但沒有任何幫助我在這裏用的。

ValueError: Tensor conversion requested dtype float32 for Tensor with dtype int32: 'Tensor("mul:0", shape=(), dtype=int32)' 

只是一個猜測不應該有tf.matmul而不是(2 * tf.pow(s, 2))

回答

1

找出問題所在。 pow()的輸入應該是一個浮點數。因此,s應該是一個浮點數。

x = tf.lin_space(-3.0, 3.0, 32) 

sess = tf.InteractiveSession() 

s = 1.0 # need to be a float 
mean = 0 
gauss = (tf.exp(tf.negative(tf.pow(x - mean, 2)/(2 * tf.pow(s, 2)))) * (1.0/(s * tf.sqrt(2 * 3.1415)))) 
plt.plot(x.eval(), gauss.eval()) 
plt.show() 

希望這會有所幫助。

+0

謝謝,但圖表不顯示任何東西,有什麼幫助嗎? –

+0

我想你應該等於1,因爲你正在計算與高斯分佈相關的值。在你的代碼中,s = 0.0,因爲高斯變量給出'nan'。這是不顯示圖表的原因 –