2017-01-30 8 views
0

テンソルフローを使用して簡単なコードを書きました。私は下のコードが動作するはずだと思った。このコードの目的は簡単です。単純な加算を計算するだけです。テンソルフローのプレースホルダーを正しく動作させる方法

import tensorflow as tf 
import numpy as np 

data = np.array([[35.0, 40.0, 45.0]]).astype(np.float32) 
print np.shape(data) 
x = tf.placeholder(tf.float32, [1, 3], name='x') 
y = tf.Variable(x + 5, name='y') 

model = tf.initialize_all_variables() 

with tf.Session() as sess: 
    sess.run(model) 
    result = sess.run(y, feed_dict={x: data}) 
    print result 

しかし、通訳者はこう言っています。

Traceback (most recent call last): 
File "basic_compare.py", line 12, in <module> 
sess.run(model) 
File "/usr/local/lib/python2.7/dist-packages/tensorflow/python/client/session.py", line 717, in run 
run_metadata_ptr) 
File "/usr/local/lib/python2.7/dist-packages/tensorflow/python/client/session.py", line 915, in _run 
feed_dict_string, options, run_metadata) 
File "/usr/local/lib/python2.7/dist-packages/tensorflow/python/client/session.py", line 965, in _do_run 
target_list, options, run_metadata) 
File "/usr/local/lib/python2.7/dist-packages/tensorflow/python/client/session.py", line 985, in _do_call 
raise type(e)(node_def, op, message) 
tensorflow.python.framework.errors.InvalidArgumentError: You must feed a value for placeholder tensor 'x' with dtype float and shape [1,3] 
[[Node: x = Placeholder[dtype=DT_FLOAT, shape=[1,3], _device="/job:localhost/replica:0/task:0/gpu:0"]()]] 

Caused by op u'x', defined at: 
File "basic_compare.py", line 6, in <module> 
x = tf.placeholder(tf.float32, [1, 3], name='x') 
File "/usr/local/lib/python2.7/dist-packages/tensorflow/python/ops/array_ops.py", line 1332, in placeholder 
name=name) 
File "/usr/local/lib/python2.7/dist-packages/tensorflow/python/ops/gen_array_ops.py", line 1748, in _placeholder 
name=name) 
File "/usr/local/lib/python2.7/dist-packages/tensorflow/python/framework/op_def_library.py", line 749, in apply_op 
op_def=op_def) 
File "/usr/local/lib/python2.7/dist-packages/tensorflow/python/framework/ops.py", line 2380, in create_op 
original_op=self._default_original_op, op_def=op_def) 
File "/usr/local/lib/python2.7/dist-packages/tensorflow/python/framework/ops.py", line 1298, in __init__ 
self._traceback = _extract_stack() 

InvalidArgumentError (see above for traceback): You must feed a value for placeholder tensor 'x' with dtype float and shape [1,3] 
[[Node: x = Placeholder[dtype=DT_FLOAT, shape=[1,3], _device="/job:localhost/replica:0/task:0/gpu:0"]()]] 

エラーに不可欠なものをコピーしました。私はこの単純なコードのために多くの時間を費やしていますが、私は何の問題も見ません。どんな先端も非常に高く評価されるでしょう。

+0

あなたがコピーしなかったエラーの本質的なものがあります:エラーを引き起こすスクリプト内の行。 'sess.run(y ...'行ではなく、初期化行 'sess.run(model)'ではありません。 '' x''を '' x''で初期化しようとしています。 'y = tf.sum(x、5.0、name = 'y')'の代わりに ' –

答えて

0

あなたはtf.initialize_all_variables()を実行するときにxを供給する必要があるので、変数初期化子としてxを使用します。

import tensorflow as tf 
import numpy as np 

data = np.array([[35.0, 40.0, 45.0]]).astype(np.float32) 
print np.shape(data) 
x = tf.placeholder(tf.float32, [1, 3], name='x') 
y = tf.Variable(x, name='y') 

model = tf.initialize_all_variables() 

with tf.Session() as sess: 
    sess.run(model, feed_dict={x: data}) 
    result = sess.run(y) 
    print result 

希望に役立つこと!

関連する問題