TensorFlow报错TypeError: Fetch argument None has invalid type class 'NoneType'

博客主要讲述了TensorFlow运行CNN卷积神经网络时出现的问题。循环第一步顺畅,第二步报错,问题出在第88行,因有两个相同变量train_op,第一次迭代时train_op被赋值为None,导致第二次出错。解决办法是将第二个变量改为“_”或其他变量名。

tensorflow运行cnn卷积神经网络时出现问题具体如下:

Traceback (most recent call last):
  File "cnn_mnist.py", line 88, in <module>
    train_loss, train_op = sess.run([loss, train_op], {input_x: batch[0], output_y:batch[1]})
  File "/home/wmm/wmmf/Envs/tensorflow/local/lib/python2.7/site-packages/tensorflow/python/client/session.py", line 929, in run
    run_metadata_ptr)
  File "/home/wmm/wmmf/Envs/tensorflow/local/lib/python2.7/site-packages/tensorflow/python/client/session.py", line 1137, in _run
    self._graph, fetches, feed_dict_tensor, feed_handles=feed_handles)
  File "/home/wmm/wmmf/Envs/tensorflow/local/lib/python2.7/site-packages/tensorflow/python/client/session.py", line 471, in __init__
    self._fetch_mapper = _FetchMapper.for_fetch(fetches)
  File "/home/wmm/wmmf/Envs/tensorflow/local/lib/python2.7/site-packages/tensorflow/python/client/session.py", line 261, in for_fetch
    return _ListFetchMapper(fetch)
  File "/home/wmm/wmmf/Envs/tensorflow/local/lib/python2.7/site-packages/tensorflow/python/client/session.py", line 370, in __init__
    self._mappers = [_FetchMapper.for_fetch(fetch) for fetch in fetches]
  File "/home/wmm/wmmf/Envs/tensorflow/local/lib/python2.7/site-packages/tensorflow/python/client/session.py", line 258, in for_fetch
    type(fetch)))
TypeError: Fetch argument None has invalid type <type 'NoneType'>

而且循环的第一步进行得很顺畅,从第二步开始报这个错误。

可以根据报错看到问题出现在第88行:

train_loss, train_op = sess.run([loss, train_op], {input_x: batch[0], output_y:batch[1]})

为什么第一次没有错,而第二次出错呢?
可以看到这一行有两个相同变量train_op,在第一次迭代时,train_op变量被赋值了sess.run()结果的第二个元素,恰好是None,导致第二次迭代中sess.run()中的train_op变成了None,就出错了。
解决的方法很简单,就是把两个变量的第二个变量改为“_”(或者是任意的变量名如“hhh”):

train_loss, _ = sess.run([loss, train_op], {input_x: batch[0], output_y:batch[1]})

参考(转载)自:https://blog.csdn.net/qq_41000891/article/details/84555225

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值