【深度学习】今日bug:TypeError: ‘method‘ object is not iterable

前言

博主主页:阿阿阿阿锋的主页_CSDN

代码来源:《动手学深度学习》

今天遇到了一个报错提示:TypeError: 'method' object is not iterable
意思是:类型错误:“方法”对象不可迭代。


文章目录

  • 前言
  • 1. 错误提示 && 部分代码
  • 2. 消灭bug
  • 小结


1. 错误提示 && 部分代码

错误提示

---------------------------------------------------------------------------
TypeError                                 Traceback (most recent call last)
<ipython-input-40-9ae7d7a05a23> in <module>
      4 # 从数值标签到文本标签
      5 true_labels = d2l.get_fashion_mnist_labels(y.asnumpy())
----> 6 pred_labels = d2l.get_fashion_mnist_labels(net(X).argmax(axis=1).asnumpy)
      7 titles = [true + '\n' + pred for true, pred in zip(true_labels, pred_labels)]
      8 

D:\anaconda\lib\site-packages\d2lzh\utils.py in get_fashion_mnist_labels(labels)
    183     text_labels = ['t-shirt', 'trouser', 'pullover', 'dress', 'coat',
    184                    'sandal', 'shirt', 'sneaker', 'bag', 'ankle boot']
--> 185     return [text_labels[int(i)] for i in labels]
    186 
    187 

TypeError: 'method' object is not iterable

通常错误提示还是非常有用的,可以有效地帮助我们地定位bug的位置。

部分代码段

for X, y in test_iter:
    break

# 从数值标签到文本标签
true_labels = d2l.get_fashion_mnist_labels(y.asnumpy())
pred_labels = d2l.get_fashion_mnist_labels(net(X).argmax(axis=1).asnumpy)
titles = [true + '\n' + pred for true, pred in zip(true_labels, pred_labels)]

d2l.show_fashion_mnist(X[0:9], titles[0:9])

2. 消灭bug

我看着这个报错,当时就懵了,没看懂它啥意思。后来仔细检查代码发现,原来是调用一个函数asnumpy时,函数名后面的()掉了。于是原本我想调用的函数,被认作了一个对象,作为参数传递给了另一个函数,然后进一步引发了类型错误(TypeError)。

加上缺失的()后,一切正常。程序跑起来了:

【深度学习】今日bug:TypeError: ‘method‘ object is not iterable_第1张图片


小结

因为这种小错误费上很多时间,真的划不来。
下次不要再这么马虎了啊。

你可能感兴趣的:(人工智能,深度学习,bug,python)