运行yolov5的train.py文件时遇到以下问题
tcls, tbox, indices, anchors = self.build_targets(p, targets) # targets
TypeError: cannot unpack non-iterable NoneType object
TypeError: cannot unpack non-iterable NoneType object
- 写回答
- 好问题 0 提建议
- 关注问题
- 邀请回答
-
1条回答 默认 最新
关注【相关推荐】
- 建议你看下这篇博客👉 :TypeError: cannot unpack non-iterable NoneType object问题
- 除此之外, 这篇博客: Python关于None的报错:'NoneType' object is not iterable和cannot unpack non-iterable NoneType object中的 二、TypeError: cannot unpack non-iterable NoneType object(类型错误:无法解包非迭代的NoneType对象) 部分也许能够解决你的问题, 你可以仔细阅读以下内容或跳转源博客中阅读:
原因:将单个 None 赋给了多个值。
例子:
value = 0 def test(): if value == 1: a = b = 1 return a, b a, b = test() print(a, b)报错:
Traceback (most recent call last):
File “d:\Projects\Python\PythonCrawler\weibo_ajax\test.py”, line 10, in
a, b = test()
TypeError: cannot unpack non-iterable NoneType object
首先,要知道 python 中每个函数在没有确定的 return 语句时,都是默认返回 None。因此,在上述例子中函数 test() 不满足 if 条件判断,所以最后返回的是默认的 None ,然后又把单个 None 赋值给 a,b ,所以就报错了。
解决方法(加上else判断):
value = 0 def test(): if value == 1: a = b = 1 return a, b else: return 1, 2 a, b = test() print(a, b)注意:else 的 return 可以返回任意类型,但必须返回两个,否则还会报错。
如果你已经解决了该问题, 非常希望你能够分享一下解决方案, 写成博客, 将相关链接放在评论区, 以帮助更多的人 ^-^解决 无用评论 打赏 举报