2016-11-18 15 views
0

私は、テンソルフローのMNISTチュートリアルのように、テンソルフローにそれらを与えることができるように、私が作業しているニューラルネットワークの入力をまとめてバッチしようとしています。しかし、私はこれをやっても見つからず、チュートリアルでは扱いません。私は上記のエラーを取得していますなぜ、私はちょうどバッチとしての私の入力を処理するためにtensorflowを取得する方法がわからないということを理解テンソルフローの入力をまとめてバッチする方法は?

ValueError: Cannot feed value of shape (50, 10, 10) for Tensor'Placeholder:0', which has shape '(10, 10)' 

input = tf.placeholder(tf.float32, [10, 10]) 
... 
accuracy = tf.reduce_mean(tf.cast(correct, tf.float32)) 
inputs = #A list containing 50 of the inputs 
sess.run(accuracy, feed_dict={input: inputs}) 

これは、次のエラーがスローされます私はそれを1つの形としてすべて供給しようとしていると思うのではなく、

ありがとうございました!

答えて

1

プレースホルダの署名を変更する必要があります。エラーメッセージを分解してみましょう:

ValueError: Cannot feed value of shape (50, 10, 10) for 
Tensor'Placeholder:0', which has shape '(10, 10)' 

あなたinputs変数は、形状(10, 10)50要素を意味し、テンソルPlaceholder:0があなたのinput変数である形状(50, 10, 10)を有するものです。あなたは(あなたが値Placeholder:0を取得しますinput.name印刷する場合。 を養うことはできません、それはinputinputsを割り当てることができないことを意味します。

最初の迅速な解決が

にプレースホルダ inputの形状を修正することです

バッチサイズを指定するより良い方法は、バッチサイズの定義されていないシェイプディメンションをNone

input = tf.placeholder(tf.float32, [None, 10, 10]) 

これは、1からアーキテクチャのハードウェア制限までのバッチサイズで動作します。

+0

ありがとうございました[なし、10、10]は本当に私が探していたものでした。それはチュートリアルの中に実際には私の頭の中でクリックされなかったものでした。 – ErlangBestLanguage

1

tf.reduce_mean()を呼び出すときに、形状[batch_size、10、10]を持つように入力を別に設定し、パラメータreduction_indicesを使用する必要があります。脇に、tf.contrib.learn.read_batch_examples()は、バッチキューを使用してサンプルをバッチ処理します。ドキュメントhereを参照してください。

+0

ありがとうございます! – ErlangBestLanguage

関連する問題