Python迭代DataLoader时出现TypeError: Caught TypeError in DataLoader worker process 0.错误。

Python迭代DataLoader时出现TypeError: Caught TypeError in DataLoader worker process 0.错误。迭代DataLoader时出现TypeError:CaughtTypeErrorinDataLoaderworkerprocess0.错误。遇见一个难以解决的问题遇见一个难以解决的问题迭代DataLoader时出现以下错误,暂时不知道怎么解决,向大家求救,是一个比较稀罕的错误,也分享给大家一个奇葩的问题一起讨论。Traceback(mostrecentcalllast…

大家好,又见面了,我是你们的朋友全栈君。

TypeError: Caught TypeError in DataLoader worker process 0.

TypeError: ‘NoneType’ object is not subscriptable

迭代 DataLoader时出现以下错误,暂时不知道怎么解决,向大家求救,是一个比较稀罕的错误,也分享给大家一个奇葩的问题一起讨论。

Traceback (most recent call last):
  File "/home/zero/blood_detect/PyTorch-YOLOv3/mTrain.py", line 96, in <module>
    for batch_i, info in enumerate(dataloader):
  File "/home/zero/anaconda3/lib/python3.7/site-packages/torch/utils/data/dataloader.py", line 819, in __next__
    return self._process_data(data)
  File "/home/zero/anaconda3/lib/python3.7/site-packages/torch/utils/data/dataloader.py", line 846, in _process_data
    data.reraise()
  File "/home/zero/anaconda3/lib/python3.7/site-packages/torch/_utils.py", line 385, in reraise
    raise self.exc_type(msg)
TypeError: Caught TypeError in DataLoader worker process 0.
Original Traceback (most recent call last):
  File "/home/zero/anaconda3/lib/python3.7/site-packages/torch/utils/data/_utils/worker.py", line 178, in _worker_loop
    data = fetcher.fetch(index)
  File "/home/zero/anaconda3/lib/python3.7/site-packages/torch/utils/data/_utils/fetch.py", line 44, in fetch
    data = [self.dataset[idx] for idx in possibly_batched_index]
  File "/home/zero/anaconda3/lib/python3.7/site-packages/torch/utils/data/_utils/fetch.py", line 44, in <listcomp>
    data = [self.dataset[idx] for idx in possibly_batched_index]
  File "/home/zero/blood_detect/PyTorch-YOLOv3/utils/datasets.py", line 130, in __getitem__
    img, targets = horisontal_flip(img, targets)
  File "/home/zero/blood_detect/PyTorch-YOLOv3/utils/augmentations.py", line 8, in horisontal_flip
    targets[:, 2] = 1 - targets[:, 2]
TypeError: 'NoneType' object is not subscriptable

用pycharm查询过变量内容,dataloader里边的内容是没有问题的,就是迭代的时候有问题。

dataloader代码是这些

    dataset = ListDataset(train_path, augment=True, multiscale=opt.multiscale_training, normalized_labels=False)
    dataloader = torch.utils.data.DataLoader(
        dataset,
        batch_size=opt.batch_size,
        shuffle=True,
        num_workers=opt.n_cpu,
        pin_memory=True,
        collate_fn=dataset.collate_fn,
    )

静待有缘人。

2019.11.30更新

TypeError: Caught TypeError in DataLoader worker process 0.解决。

解决方案:

num_workers设置为0。

Error 现在为

Traceback (most recent call last):
  File "/home/zero/blood_detect/PyTorch-YOLOv3/mTrain.py", line 96, in <module>
    for batch_i, info in enumerate(dataloader):
  File "/home/zero/anaconda3/lib/python3.7/site-packages/torch/utils/data/dataloader.py", line 346, in __next__
    data = self._dataset_fetcher.fetch(index)  # may raise StopIteration
  File "/home/zero/anaconda3/lib/python3.7/site-packages/torch/utils/data/_utils/fetch.py", line 44, in fetch
    data = [self.dataset[idx] for idx in possibly_batched_index]
  File "/home/zero/anaconda3/lib/python3.7/site-packages/torch/utils/data/_utils/fetch.py", line 44, in <listcomp>
    data = [self.dataset[idx] for idx in possibly_batched_index]
  File "/home/zero/blood_detect/PyTorch-YOLOv3/utils/datasets.py", line 130, in __getitem__
    img, targets = horisontal_flip(img, targets)
  File "/home/zero/blood_detect/PyTorch-YOLOv3/utils/augmentations.py", line 8, in horisontal_flip
    targets[:, 2] = 1 - targets[:, 2]
TypeError: 'NoneType' object is not subscriptable

好像意思是info没有下标不可迭代。

2019.12.1 更新

TypeError: ‘NoneType’ object is not subscriptable. 解决。

解决方案

数据导入时少给了数据的标签,导致数据没有标签,也就没有下标。

给了标签后,上面那个Error也可以设置多个num_workers了。

更新

有个博主写的一个相关解决方案,感觉更详细一点,在这里贴上。
相关博客链接

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。

发布者:全栈程序员-用户IM,转载请注明出处:https://javaforall.cn/137625.html原文链接:https://javaforall.cn

【正版授权,激活自己账号】: Jetbrains全家桶Ide使用,1年售后保障,每天仅需1毛

【官方授权 正版激活】: 官方授权 正版激活 支持Jetbrains家族下所有IDE 使用个人JB账号...

(0)


相关推荐

  • 经典算法–约瑟夫环问题的三种解法

    经典算法–约瑟夫环问题的三种解法约瑟夫环问题,这是一个很经典算法,处理的关键是:伪链表问题描述:N个人围成一圈,从第一个人开始报数,报到m的人出圈,剩下的人继续从1开始报数,报到m的人出圈;如此往复,直到所有人出圈。(模拟此过程,输出出圈的人的序号)在数据结构与算法书上,这个是用链表解决的。我感觉链表使用起来很麻烦,并且这个用链表处理起来也不是最佳的。我画了一个图用来理解:有如下问题需要首先考虑:1、“圈…

  • C++实现matlab中的interp1和interp2插值「建议收藏」

    C++实现matlab中的interp1和interp2插值「建议收藏」头文件interpfun.h#ifndefINTERPFUN_H#defineINTERPFUN_H#include"math.h"#include&lt;stdio.h&gt;#include&lt;string.h&gt; #ifndefSafeDeleteVec#defineSafeDeleteVec(X){if((X))delete(X);(X)=NULL;}#endi…

  • 解决Warning: scandir() has been disabled for security reasons in…的问题

    解决Warning: scandir() has been disabled for security reasons in…的问题

  • SQL嵌套查询_sql差集嵌套

    SQL嵌套查询_sql差集嵌套selecttop11from…主要是用来判断表是否有记录TRUNCATE:删除内容、释放空间但不删除定义,保留数据表的结构删除目标表中所有字段,不影响表结构派生表:派生表就是一个由查询结果生成的临时表。他是在外部查询的FROM中定义的。派生表的存在范围只是在外部查询中,只要外部查询结束了,派生表也就不存在了。派生表一定要写在FROM后面范围内,用()括起来。后面跟着派生表的名称。se…

  • 游戏开发怎么做(游戏开发流程详解)

    本文来自作者goto先生在GitChat上分享「如何开发一款游戏:游戏开发流程及所需工具」,「阅读原文」查看交流实录。「文末高能」编辑|哈比游戏作为娱乐生活的一个方面,参与其中的人越来越多,而大部分参与其中的人都是以玩家的身份。他们热爱一款游戏,或是被游戏的故事情节、炫丽的场景、动听的音乐所艳羡,亦或是被游戏中角色扮演、炫酷的技能、有趣的任务所吸引,然而他们中的大多数可能并不了解如此

  • Tomcat环境配置[通俗易懂]

    Tomcat环境配置[通俗易懂]环境配置环境配置环境配置一、Tomcat环境配置1、配置CATALINA_HOME2、配置CATALINA_BASE3、配置Path4、检查配置一、Tomcat环境配置tomcat官网:https://tomcat.apache.org/download-90.cgi1、配置CATALINA_HOMED:\environment\tomcat\apache-tomcat-9.0.442、配置CATALINA_BASED:environment\tomcat\apache-tomcat-9

发表回复

您的电子邮箱地址不会被公开。

关注全栈程序员社区公众号