2016-09-13 4 views
0

からデータを読み込む際に形状誤差Iは、テンソルの流れで、次のデータファイルに(thisに私のコードを基づか)単層パーセプトロンを養成しようとしています:Tensorflow - ファイル

最後の列がある
1,1,0.05,-1.05 
1,1,0.1,-1.1 
.... 

label(3つのパラメータの関数)で、最初の3つのカラムは関数の引数です。

import tensorflow as tf 

... # some basics to read the data 
example, label = read_file_format(filename_queue) 
... # model construction and parameter setting 

# Launch the graph 
with tf.Session() as sess: 
    sess.run(init) 
    for epoch in range(training_epochs): 
     _, c = sess.run([optimizer, cost], feed_dict={x: example, y: label}) 
    print("Optimization Finished!") 

が、私はそれを実行すると、それは次のエラーを与える:

Traceback (most recent call last): 
    File "nn.py", line 85, in <module> 
    _, c = sess.run([optimizer, cost], feed_dict={x: example, y: label}) 
    File "/usr/local/lib/python2.7/dist-packages/tensorflow/python/client/session.py", line 710, in run 
    run_metadata_ptr) 
    File "/usr/local/lib/python2.7/dist-packages/tensorflow/python/client/session.py", line 887, in _run 
    % (np_val.shape, subfeed_t.name, str(subfeed_t.get_shape()))) 
ValueError: Cannot feed value of shape (3,) for Tensor u'Placeholder:0', which has shape '(?, 3)' 

答えて

1

あなたのグラフはXがあることを想定していたデータを読み込んで、モデルを(私は読みやすさのためにそれを簡素化)列車コードテンソル形状(φ、3)である。あなたのサンプルデータは、形状(3、)、すなわち長さ3の1次元ベクトルです。例を(1,3)に変更するか、一回のショットで例のバッチを渡します(例えば10、 3))

+0

バッチを作成するのにテンソルがありますか?私はexample.reshape(1,3)を試してみましたが、それは悪化しました。 "ValueError:Tensor u'Placeholder_1の形状( ')に形状の値を供給できません:0'、形状 '(?、1)' " – user3639557

+0

いいえ、それはそれをより良くしました!今度は、Placeholder_1についてYが文句を言っています。だから、(-1、1)に変更してください。 – MMN

+0

そして、これはバッチを作成するためのテンソルフローティングな方法ですので心配しないでください。 TFグラフはプレースホルダから開始するので、バッチを作成するのに必要なだけの自然な方法でデータを作成します。 – MMN