前提・実現したいこと
tensorflowで出力のベクトルを1次元にするとエラーになります。たとえばplaceholderで[100,1]を指定したところに[100,]のものは代入できないよっていう感じで言われます。
でも実際は[100,]も[100,1]も100x1の行列なのですが・・・
どうすればよいでしょうか。
MNISTチュートリアルを行いたいわけではないのですが、今後出力を1次元にするプログラムを考えていて、MNISTで試したらエラーが出たということです。
発生している問題・エラーメッセージ
ValueError: Cannot feed value of shape (100,) for Tensor 'Placeholder_11:0', which has shape '(?, 1)'
該当のソースコード
python
1from tensorflow.examples.tutorials.mnist import input_data 2mnist=input_data.read_data_sets("MNIST_data/",one_hot=True) 3 4import tensorflow as tf 5 6x=tf.placeholder(tf.float32,[None,784]) 7 8W=tf.Variable(tf.zeros([784,1])) 9b=tf.Variable(tf.zeros([1])) 10 11y=tf.nn.softmax(tf.matmul(x,W)+b) 12 13y_=tf.placeholder(tf.float32,[None,1]) 14cross_entropy=tf.reduce_mean(-tf.reduce_sum(y_*tf.log(y),reduction_indices=[1])) 15 16train_step=tf.train.GradientDescentOptimizer(0.5).minimize(cross_entropy) 17 18init=tf.global_variables_initializer() 19 20sess=tf.Session() 21sess.run(init) 22 23for i in range(1000): 24 batch_xs,batch_ys=mnist.train.next_batch(100) 25 batch_ys=batch_ys[:,0] 26 sess.run(train_step,feed_dict={x:batch_xs,y_:batch_ys})
試したこと
ここに問題に対して試したことを記載してください。
補足情報(FW/ツールのバージョンなど)
ここにより詳細な情報を記載してください。
回答1件
あなたの回答
tips
プレビュー