2017-07-11 4 views
0

これは私の最初のコードです。入力層の寸法を2から10に変更するだけです

入力は2次元と出力されている2次元

最初のコードされています

w = tf.Variable(tf.zeros([2,1])) 
b = tf.Variable(tf.zeros([1])) 


x = tf.placeholder(tf.float32,shape=[None,2]) 
t = tf.placeholder(tf.float32,shape=[None,1]) 
y = tf.nn.sigmoid(tf.matmul(x,w) + b) 

cross_entropy = - tf.reduce_sum(t * tf.log(y) + (1-t) * 
           tf.log(1 -y)) 
train_step = tf.train.GradientDescentOptimizer(0.1).minimize(cross_entropy) 
correct_prediction = tf.equal(tf.to_float(tf.greater(y,0.5)),t) 


X = np.array([[0,0],[0,1],[1,0],[1,1]]) 
Y = np.array([[0],[1],[1],[1]]) 

init = tf.global_variables_initializer() 
sess = tf.Session() 
sess.run(init) 

for epoch in range(200): 
    sess.run(train_step,feed_dict={ 
     x:X, 
     t:Y 
    }) 

は今、私は10個の寸法入力と2次元の出力にこれを拡張したいです。

次に、このように変更しましたが、エラー が表示されます。 このエラーはプレースホルダのサイズに関連していることがわかりますが、 どこで変更すればいいですか?

Traceback (most recent call last): 
    File "wisdom2.py", line 57, in <module> 
    t: Y 
    File "/Users/whitebear/tensorflow/lib/python3.4/site-packages/tensorflow/python/client/session.py", line 789, in run 
    run_metadata_ptr) 
    File "/Users/whitebear/tensorflow/lib/python3.4/site-packages/tensorflow/python/client/session.py", line 975, in _run 
    % (np_val.shape, subfeed_t.name, str(subfeed_t.get_shape()))) 
ValueError: Cannot feed value of shape (5, 1) for Tensor 'Placeholder:0', which has shape '(?, 10)' 

セカンドコード:

w = tf.Variable(tf.zeros([10,1])) ## change dimensions to 2 -> 10 
b = tf.Variable(tf.zeros([1])) 

x = tf.placeholder(tf.float32,shape=[None,10]) # change dimensions to 2 -> 10 
t = tf.placeholder(tf.float32,shape=[None,1]) 
y = tf.nn.sigmoid(tf.matmul(x,w) + b) 

cross_entropy = - tf.reduce_sum(t * tf.log(y) + (1 -t) * tf.log(1 -y)) 
train_step = tf.train.GradientDescentOptimizer(0.1).minimize(cross_entropy) 
correct_prediction = tf.equal(tf.to_float(tf.greater(y,0.5)),t) 

##I changed here.... 
X = np.array([[0],[1],[0],[1],[1]]) #answer 
Y = np.array([ 
[2,-2,3,-4,2,2,3,5,3,6], 
[1,3,-3,2,2,5,1,3,2,3], 
[-2,3,2,-2,2,-2,1,3,4,5], 
[-2,2,-1,-2,2,-2,7,3,9,2], 
[-2,-3,2,-2,2,-4,1,-4,4,5] 
]) 


init = tf.global_variables_initializer() 
sess = tf.Session() 
sess.run(init) 

for epoch in range(200): 
    sess.run(train_step,feed_dict={ 
     x: X, 
     t: Y 
    }) 

答えて

1

あなたはplaceholdersへの入力として間違った形状を供給しています。プレースホルダのxのディメンションを変更しましたが、間違った入力X(変更していない)を入力しましたが、変更したyの代わりに入力しました。したがって、X、Yを交換するか、適切なものを変更するplaceholders

+0

私は誤ってX-Yデータを逆にしたと誤解しています。どうもありがとう – whitebear

関連する問題