2017-10-21 5 views
0

私はTensorflowの基本をいくつかのgitの例とチュートリアルの助けを借りて試していますが、ここでは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() 

ため、私は、私もタイプが、tf.to_float()を変更しようとしたが、それはどちらか助けていなかったと、ここで私は午前フロート引数tf.pow()で、すなわち2.0の代わりに、2の最初にTypeErrorを得ていました。

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()への入力はfloatでなければなりません。したがって、はfloatにする必要があります。

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

ガウス分布に関連する値を計算しているので、sは1に等しいはずです。あなたのコードでは、そのガウス変数が 'nan'を与える​​ので、s = 0.0です。これがグラフを表示しない理由です –

関連する問題