2017-09-26 9 views
1

私はTensorflowで単純な線形モデルを生成しようとしていました。ここでコードが...テンソルフローの線形モデル

N  = 400 
features = 100 
nSteps = 1000 

data = (np.random.randn(N, features), np.random.randint(0, 2, N)) 

W = tf.placeholder(tf.float32, shape=(features,1), name='W') 
b = tf.placeholder(tf.float32, shape=(features,1), name='b') 
d = tf.constant(data[0], dtype=tf.float32) 

result = tf.add(tf.matmul(d, W), b) 

ある

...それは bの寸法のいくつかの問題がある可能性がありますことが判明したが、いくつかの理由として、これまで私が言うことができるように、彼らはすべてOKです

これがなぜエラーを投げるのか分かりません。誰かが助けてくれますか?

注:

result = tf.matmul(d, W) 

これはokです。

結果の形状を確認しましたが、bと同じです。何が問題なのかは分かりません。

答えて

3

線形モデル(出力層の1つの単位)では、bはスカラーでなければなりません。

数値観測では、、数値はW [1 x features]、X [features x 1]です。次に、WXはスカラーです。したがって、bはスカラーでなければなりません。

ですから、正しい線形モデルを取得し、寸法が出て動作させるために、次のようにbを変更する必要があります。

b = tf.placeholder(tf.float32, shape=(1,1), name='b') 
関連する問題