出错Fetch argument None has invalid type
来源:4-23 动手实现CNN卷积神经网络(五)

榴莲痴汉
2018-02-26
Step=0,Train loss=2.3095627,[Tset accuracy=0.21733333]
Traceback (most recent call last):
File "f:\machine learning\practice\cnn_mnist.py", line 102, in <module>
train_loss,train_op = sess.run([loss,train_op],{input_x:batch[0],output_y:batch[1]})
File "G:\python\lib\site-packages\tensorflow\python\client\session.py", line 895, in run
run_metadata_ptr)
File "G:\python\lib\site-packages\tensorflow\python\client\session.py", line 1113, in _run
self._graph, fetches, feed_dict_tensor, feed_handles=feed_handles)
File "G:\python\lib\site-packages\tensorflow\python\client\session.py", line 420, in __init__
self._fetch_mapper = _FetchMapper.for_fetch(fetches)
File "G:\python\lib\site-packages\tensorflow\python\client\session.py", line 240, in for_fetch
return _ListFetchMapper(fetch)
File "G:\python\lib\site-packages\tensorflow\python\client\session.py", line 347, in __init__
self._mappers = [_FetchMapper.for_fetch(fetch) for fetch in fetches]
File "G:\python\lib\site-packages\tensorflow\python\client\session.py", line 347, in <listcomp>
self._mappers = [_FetchMapper.for_fetch(fetch) for fetch in fetches]
File "G:\python\lib\site-packages\tensorflow\python\client\session.py", line 237, in for_fetch
(fetch, type(fetch)))
TypeError: Fetch argument None has invalid type <class 'NoneType'>
就是只训练了一次,错误在这部
train_loss,train_op = sess.run([loss,train_op],{input_x:batch[0],output_y:batch[1]})
2回答
-
Oscar
2018-06-30
问题是在 46 行的地方,那个应该是 train_op_, 和之前我们在 34 行定义的 train_op 不是一个哦:
train_op = tf.train.AdamOptimizer(learning_rate=0.001).minimize(loss)
它多一个下划线(_)。
所以只要将 46 行这句
train_loss, train_op = sess.run([loss, train_op], {input_x: batch[0], output_y: batch[1]})
改为
train_loss, train_op_ = sess.run([loss, train_op], {input_x: batch[0], output_y: batch[1]})
即可。当然了,这个 train_op_ 我们后面没有用到,所以你随便取什么名字都行。
00 -
Oscar
2018-02-26
能否贴出你的代码呢?谢谢
00
相似问题