2017-03-02 5 views
13

Iは入力画像のバッチを期待するプレースホルダ変数を有する:
1)テンソルと
2)いくつかのnumpyのデータ:Tensorflow:プレースホルダ変数にテンソルを与える方法は?

input_placeholder = tf.placeholder(tf.float32, [None] + image_shape, name='input_images') 

は、今は、入力データの2つのソースを有します。 numpyの入力データに対して

、私はプレースホルダ変数にデータをフィードする方法を知っている:

sess = tf.Session() 
mLoss, = sess.run([loss], feed_dict = {input_placeholder: myNumpyData}) 

私はそのプレースホルダ変数にテンソルを養うことができますどのように?

mLoss, = sess.run([loss], feed_dict = {input_placeholder: myInputTensor}) 

私にエラーを与える:私はそれが私のプログラムが遅くなるため、.eval()を使用してnumpyの配列にテンソルを変換したくない

TypeError: The value of a feed cannot be a tf.Tensor object. Acceptable feed values include Python scalars, strings, lists, or numpy ndarrays. 

、他の方法はありますか?

答えて

0

これは私にとっては最新のバージョンで動作します... TFの古いバージョンがありますか?

a = tf.Variable(1) 
sess.run(2*a, feed_dict={a:5}) # prints 10 
+0

これはデータでそれを供給しています。私が必要とするのは 'feed_dict = {a:someTensorObject}'です。 – mcExchange

+0

正しいです、 'feed_dict'はデータを送るためだけです。テンソルを供給する場合は、通常のTensorFlow APIを使用してください。 IEでは、 'tf.add(a、b)'は 'a'と' b'を 'tf.add'に"フィード "します。おそらく 'sess.run(a.assign(someTensorObject))' –

0

feed_dictを使用すると、非プレースホルダにデータを入力できます。したがって、まずデータフローグラフをmyInputTensorテンソルデータソースに直接接続します(つまり、プレースホルダを使用しない)。あなたがnumpyのデータを使用して実行したい場合、あなたは効果的にこのように、myNumpyDatamyImportTensorをマスクすることができます

mLoss, = sess.run([loss], feed_dict={myImportTensor: myNumpyData}) 

[私はまだしかし、複数のテンソルデータソースでこれを行う方法を把握しようとしている。]

1

これは2016年のGitHubで議論されており、hereにチェックしてください。ここでconcretevitaminによるキーポイントは次のとおり

One key thing to note is that Tensor is simply a symbolic object. The values of your feed_dict are the actual values, e.g. a Numpy ndarry.

テンソル実際の値は、それの外側であるがシンボリックオブジェクトグラフに流れているように、我々は唯一のグラフとシンボリックオブジェクトに実際の値を渡すことができグラフの外に存在することはできません。

関連する問題