2016-11-07 4 views
6

私はTensorFlowで簡単なおもちゃの例を作成しようとしています。私は奇妙なエラーに遭遇しました。私は次のように定義された2つのプレースホルダを有する:Tensorflowプレースホルダにnumpy配列を供給するにはどうすればよいですか?

x = tf.placeholder(tf.float32, shape=[None,2]) [two-parameter input] 

y_ = tf.placeholder(tf.float32, shape=[None,2]) [one-hot labels] 

I、後でとして定義feed_dictとこれらのプレースホルダを供給しようとする:

batch[0]batch[1]サイズ(100,2)の両方numpyのndarraysある
feed_dict={x: batch[0].astype(np.float32), y_: batch[1].astype(np.float32)} 

:私はモデルを実行しようとすると、[それぞれのサイズをプリントアウトすることによって検証]

、私はエラーを取得します「X」

上で定義された私のプレースホルダによって引き起こさ

誰も私が間違ってやって伝えることができますか?私はオンラインでいくつかの例を見てきましたが、これはうまくいくはずです... numpy配列の値をプレースホルダに与える別の方法はありますか?

私はUbuntu、SCL、およびPython 2.7で作業しています。標準のnumpyパッケージとtensorflowパッケージがインストールされています。

+0

デバッグを助けるために、すべてのテンソルと操作に名前を付けることができます。 'x = tf.placeholder(...、name = 'x')'を実行することによって、エラーメッセージはそれほどあまり秘密ではありません。 – sunside

+0

あなたのコードはうまくいかなければなりませんでした。マシンで同じことをしました。つまり、同じタイプの 'numpy.ndarray'(' float32')で 'tf.placeholder'を与えました。あなたがエラーメッセージ全体を出すなら、それは役に立ちます。 –

答えて

4

コード全体がなくても、正確に答えることは難しいです。 おもちゃの例で説明したことを再現しようとしましたが、うまくいきました。

import tensorflow as tf 
import numpy as np 

x = tf.placeholder(tf.float32, shape=[None, 2]) 
y_ = tf.placeholder(tf.float32, shape=[None, 2]) 
loss = tf.reduce_sum(tf.abs(tf.sub(x, y_)))#Function chosen arbitrarily 
input_x=np.random.randn(100, 2)#Random generation of variable x 
input_y=np.random.randn(100, 2)#Random generation of variable y 

with tf.Session() as sess: 
    print(sess.run(loss, feed_dict={x: input_x, y_: input_y})) 
関連する問題