Python Tensorflow NoneType不是Iterab

2024-04-20 07:50:09 发布

您现在位置:Python中文网/ 问答频道 /正文

完整代码是here

错误:

    ---------------------------------------------------------------------------
TypeError                                 Traceback (most recent call last)
<ipython-input-6-e6c5369957bc> in <module>()
     55 print(feed_dict)
     56 _ , loss_val = sess.run(tr_op, 
---> 57                         feed_dict=feed_dict)
     58 print('Loss of the current batch is {}'.format(loss_val))

TypeError: 'NoneType' object is not iterable

在执行该调用之前,将运行以下代码:

^{pr2}$

其结果是:

<class 'tensorflow.python.framework.ops.Operation'>
<class 'dict'>
{<tf.Tensor 'img_data:0' shape=(?, 64, 64, 3) dtype=float32>: array([[[[0.3019608 , 0.23921569, 0.58431375],
         [0.30588236, 0.23921569, 0.61960787],
         [0.30980393, 0.24705882, 0.63529414],
         ...,

因此,应该是iterable的对象显然是iterable,因为当我试图用它创建迭代器时,它不会引发异常,而且两个对象都有明确定义的类型。这个错误不在会话的TensorFlow文件中,我不知道它是从哪里引起的,因为没有跟踪。在

谢谢你的帮助


Tags: 对象代码mosthereisfeed错误val
1条回答
网友
1楼 · 发布于 2024-04-20 07:50:09

看来你的问题在这里:

_ , loss_val = sess.run(tr_op, feed_dict=feed_dict)

您正在要求tensorflow为您计算tr_op。这是一个手术。E、 g.将产生一个来自sess.run的返回值。您正在尝试从结果中提取2个值。在本例中,它试图将None的返回值视为元组。在

试试看:

^{pr2}$

您将看到结果是None,这是优化器(tr_op)的正确返回值。如果您进一步尝试:

_, loss_val = result

您将再次得到您的错误TypeError: 'NoneType' object is not iterable。在

你的意思可能是:

_ , loss_val = sess.run([tr_op, loss_op], feed_dict=feed_dict)

相关问题 更多 >