2017-09-18 4 views
1

私はテンソルフローバージョン1.3.0をubuntu 16.04で実行しています。主な目的は、テンソルボード上のグラフを視覚化することです。コードを実行している間は、コードが初めて実行されたときには、すべてが完璧にうまくいっているようです。私は2回目のコードを実行したときしかし、その後、私はこのエラーを取得する:ここでTensorflowエラー:InvalidArgumentError:dtype floatとshape [?:784]を持つプレースホルダテンソル 'プレースホルダ'の値を入力する必要があります。

InvalidArgumentError: You must feed a value for placeholder tensor 'Placeholder' with dtype float and shape [?,784] 
[[Node: Placeholder = Placeholder[dtype=DT_FLOAT, shape=[?,784], _device="/job:localhost/replica:0/task:0/cpu:0"]()]] 

はトレースバックです:ここでは

InvalidArgumentError Traceback (most recent call last) 
<ipython-input-26-149c9b9d8878> in <module>() 
11    sess.run(optimizer, feed_dict={x: batch_xs, y: 
batch_ys}) 
12    avg_cost += sess.run(cost_function, feed_dict={x: 
batch_xs, y: batch_ys})/total_batch 
---> 13    summary_str = sess.run(merged_summary_op, 
feed_dict={x: batch_xs, y: batch_ys}) 
14    summary_writer.add_summary(summary_str, 
iteration*total_batch + i) 
15   if iteration % display_step == 0: 

/home/niraj/anaconda2/lib/python2.7/site- 
packages/tensorflow/python/client/session.pyc in run(self, fetches, 
feed_dict, options, run_metadata) 
893  try: 
894  result = self._run(None, fetches, feed_dict, options_ptr, 
--> 895       run_metadata_ptr) 
896  if run_metadata: 
897   proto_data = tf_session.TF_GetBuffer(run_metadata_ptr) 

InvalidArgumentError      Traceback (most recent call 
last) 
<ipython-input-26-149c9b9d8878> in <module>() 
11    sess.run(optimizer, feed_dict={x: batch_xs, y: 
batch_ys}) 
12    avg_cost += sess.run(cost_function, feed_dict={x: 
batch_xs, y: batch_ys})/total_batch 
---> 13    summary_str = sess.run(merged_summary_op, 
feed_dict={x: batch_xs, y: batch_ys}) 
14    summary_writer.add_summary(summary_str, 
iteration*total_batch + i) 
15   if iteration % display_step == 0: 

/home/niraj/anaconda2/lib/python2.7/site- 
packages/tensorflow/python/client/session.pyc in run(self, fetches, 
feed_dict, options, run_metadata) 
893  try: 
894  result = self._run(None, fetches, feed_dict, options_ptr, 
--> 895       run_metadata_ptr) 
896  if run_metadata: 
897   proto_data = tf_session.TF_GetBuffer(run_metadata_ptr) 

/home/niraj/anaconda2/lib/python2.7/site- 
packages/tensorflow/python/client/session.pyc in _run(self, handle, 
fetches, feed_dict, options, run_metadata) 
1122  if final_fetches or final_targets or (handle and 
feed_dict_tensor): 
1123  results = self._do_run(handle, final_targets, 
final_fetches, 
-> 1124        feed_dict_tensor, options, 
run_metadata) 
1125  else: 
1126  results = [] 

/home/niraj/anaconda2/lib/python2.7/site- 
packages/tensorflow/python/client/session.pyc in _do_run(self, handle, 
target_list, fetch_list, feed_dict, options, run_metadata) 
1319  if handle is None: 
1320  return self._do_call(_run_fn, self._session, feeds, 
fetches, targets, 
-> 1321       options, run_metadata) 
1322  else: 
1323  return self._do_call(_prun_fn, self._session, handle, 
feeds, fetches) 

/home/niraj/anaconda2/lib/python2.7/site- 
packages/tensorflow/python/client/session.pyc in _do_call(self, fn, 
*args) 
1338   except KeyError: 
1339   pass 
-> 1340  raise type(e)(node_def, op, message) 
1341 
1342 def _extend_graph(self): 

はコードです:

import tensorflow as tf 
from tensorflow.examples.tutorials.mnist import input_data 
mnist = input_data.read_data_sets("/home/niraj/Documents/artificial 
intelligence/projects/tensorboard", one_hot=True) 

learning_rate = 0.01 
training_iteration = 200 
batch_size = 100 
display_step = 2 

# TF graph input 
x = tf.placeholder('float32', [None, 784]) # mnist data image of shape 
28*28=784 
y = tf.placeholder('float32',[None, 10]) # 0-9 digits recognition => 
10 classes 

W = tf.Variable(tf.zeros([784, 10])) 
b = tf.Variable(tf.zeros([10])) 

with tf.name_scope("Wx_b") as scope: 
    model = tf.nn.softmax(tf.matmul(x, W) + b) # Softmax 

w_h = tf.summary.histogram("weights", W) 
b_h = tf.summary.histogram("biases", b) 

with tf.name_scope("cost_function") as scope: 
    cost_function = -tf.reduce_sum(y*tf.log(model)) 
tf.summary.scalar("cost_function", cost_function) 

with tf.name_scope("train") as scope: 
    optimizer = tf.train.GradientDescentOptimizer(learning_rate).minimize(cost_function) 

init = tf.global_variables_initializer() 
merged_summary_op = tf.summary.merge_all() 
with tf.Session() as sess: 
    sess.run(init) 
summary_writer = tf.summary.FileWriter('/home/niraj/Documents/artificial intelligence/projects/tensorboard', graph=sess.graph) 
for iteration in range(training_iteration): 
    avg_cost = 0 
    total_batch = int(mnist.train.num_examples/batch_size) 
    for i in range(total_batch): 
     batch_xs, batch_ys = mnist.train.next_batch(batch_size) 
     sess.run(optimizer, feed_dict={x: batch_xs, y: batch_ys}) 
     avg_cost += sess.run(cost_function, feed_dict={x: batch_xs, y: batch_ys})/total_batch 
     summary_str = sess.run(merged_summary_op, feed_dict={x: batch_xs, y: batch_ys})  
     summary_writer.add_summary(summary_str, iteration*total_batch + i) 
    if iteration % display_step == 0: 
     print "Iteration:", '%04d' % (iteration + 1), "cost=", "{:.9f}".format(avg_cost) 


print "Tuning completed!" 
predictions = tf.equal(tf.argmax(model, 1), tf.argmax(y, 1)) 
accuracy = tf.reduce_mean(tf.cast(predictions, "float")) 
print "Accuracy:", accuracy.eval({x: mnist.test.images, y: mnist.test.labels}) 

はあなたを思い出させますこのコードは、初めて実行したときに完璧に動作します.2回目の実行でエラーが発生しました。しかし、ノートブックと私のジュピター端末を閉じた後、再度開いて再度実行すると、ru nにエラーがなく、2回目の実行では上記のエラーが発生します。

答えて

1

私は同じ問題を抱えています。これまでのところ、サマリー操作を削除するとエラーが発生しないことがわかりました。私はtf.summary.merge([summary_var1, summary_var2])tf.summary.merge_allを置き換えError with feed values for placeholders when running the merged summary op

:私はここでの提案に従うことによって、これを固定

:私はそれは要約で動作するように取得する方法を見つけた場合、私は...

UPDATEこれを更新します

これを修正する簡単な方法は、ループの最後にtf.reset_default_graph()を呼び出して、トレーニングを再開することです。

+0

はい。 tf.reset_default_graph()が動作しています。先日私はこの本を読んでいました。「scikit-learnとtensorflowで手を動かして」、「Jupyter(またはPythonシェル)で、同じコマンドをもっと実行するのが一般的です。 1つの解決策は、Jupyterカーネル(またはPythonシェル)を再起動することですが、もっと便利な解決策は、 tf.reset_default_graph()を実行してデフォルトのグラフを表示します。 – clarky

関連する問題