2017-10-20 156 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