9474590 2023-11-03 14:38 采纳率: 0%
浏览 63

TypeError: cannot unpack non-iterable NoneType object

运行yolov5的train.py文件时遇到以下问题
tcls, tbox, indices, anchors = self.build_targets(p, targets) # targets
TypeError: cannot unpack non-iterable NoneType object

  • 写回答

1条回答 默认 最新

  • CSDN-Ada助手 CSDN-AI 官方账号 2023-11-03 17:53
    关注

    【相关推荐】



    • 建议你看下这篇博客👉 :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 可以返回任意类型,但必须返回两个,否则还会报错。


    如果你已经解决了该问题, 非常希望你能够分享一下解决方案, 写成博客, 将相关链接放在评论区, 以帮助更多的人 ^-^
    评论

报告相同问题?

问题事件

  • 创建了问题 11月3日