web-dev-qa-db-ja.com

Tensorflowプレースホルダーにnumpy配列を渡すにはどうすればよいですか?

TensorFlowで簡単なおもちゃの例を作成しようとしていますが、奇妙なエラーに遭遇しました。次のように定義された2つのプレースホルダーがあります。

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

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

後でこれらのプレースホルダーに、次のように定義されたfeed_dictをフィードしようとします。

feed_dict={x: batch[0].astype(np.float32), y_: batch[1].astype(np.float32)}

どこ batch[0]およびbatch[1]両方とも、サイズ(100,2)のnumpy ndarrayです(それぞれのサイズを出力することにより検証されます)

モデルを実行しようとすると、次のエラーが表示されます。

「InvalidArgumentError:プレースホルダーテンソル 'Placeholder'の値にdtype floatを指定する必要があります」

上記で定義したプレースホルダー「x」が原因

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

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

11

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

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}))
10