2017-10-20 170 views
0

当我学习TensorFlow通过尝试的例子mnist_softmax.py(this is the orignal file),我为了一些修改添加到它使用TensorBoard遇到错误使用tensorflow.summary

tf.global_variables_initializer().run() 
    merged_summary_op = tf.summary.merge_all() 
    summary_writer = tf.summary.FileWriter('mnist_logs', sess.graph) 
    # Train 
    for i in range(1000): 
    batch_xs, batch_ys = mnist.train.next_batch(100) 
    sess.run(train_step, feed_dict={x: batch_xs, y_: batch_ys}) 
    if i%25 == 0: 
     summary_str , _ = sess.run(merged_summary_op) 
     summary_writer.add_summary(summary_str,i) 

    # Test trained model 
    correct_prediction = tf.equal(tf.argmax(y, 1), tf.argmax(y_, 1)) 
    accuracy = tf.reduce_mean(tf.cast(correct_prediction, tf.float32)) 
    print(sess.run(accuracy, feed_dict={x: mnist.test.images, 
             y_: mnist.test.labels})) 

但A获得了错误,当我运行此文件:

File "mnist_softmax.py", line 87, in <module> 
    tf.app.run(main=main, argv=[sys.argv[0]] + unparsed) 
    File "/Library/Frameworks/Python.framework/Versions/3.6/lib/python3.6/site-packages/tensorflow/python/platform/app.py", line 48, in run 
    _sys.exit(main(_sys.argv[:1] + flags_passthrough)) 
    File "mnist_softmax.py", line 73, in main 
    summary_str , _ = sess.run(merged_summary_op) 
    File "/Library/Frameworks/Python.framework/Versions/3.6/lib/python3.6/site-packages/tensorflow/python/client/session.py", line 895, in run 
    run_metadata_ptr) 
    File "/Library/Frameworks/Python.framework/Versions/3.6/lib/python3.6/site-packages/tensorflow/python/client/session.py", line 1109, in _run 
    self._graph, fetches, feed_dict_tensor, feed_handles=feed_handles) 
    File "/Library/Frameworks/Python.framework/Versions/3.6/lib/python3.6/site-packages/tensorflow/python/client/session.py", line 413, in __init__ 
    self._fetch_mapper = _FetchMapper.for_fetch(fetches) 
    File "/Library/Frameworks/Python.framework/Versions/3.6/lib/python3.6/site-packages/tensorflow/python/client/session.py", line 230, in for_fetch 
    (fetch, type(fetch))) 
TypeError: Fetch argument None has invalid type <class 'NoneType'> 

我将不胜感激,如果有人能找出我写错了:)。

回答

0

我相信这个问题是一样的:Tensorflow TypeError: Fetch argument None has invalid type <type 'NoneType'>?

虽然它不是在你的代码所示,变量train_step的价值可能是None。打印出来并检查。这就是你的“提取参数”,它是你要求张量流计算并返回给你的OP或张量。

在你的代码前面的某个地方你可能有:

train_step = tf.train.AdamOptimizer(...).minimize(...)

Tensorflow需要你这个OP(操作)发送到sess.run(...)。这指示tensorflow来计算“OP”train_step,并且这样做会更新权重。沿途某处train_step可能被重新分配到None