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了。

更新

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

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

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

(0)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • 常用的英文单词2000

    常用的英文单词2000常用的英文单词,可以ctrl+f来查找需要的单词,查找需要的前缀后缀引导的单词1a[ei,ə]art.一(个);任何一(个);每一(个)2I[ai]pron.我3ability[əbiliti]n.能力,本领;才能,才智4able[eibəl]a.能够…的,得以…的;有才干的5about[əbaut]prep.关于;在…周围ad.大约;在附近6ab…

    2022年6月23日
    23
  • 怎么将sql文件导入数据库_mysql导入sql文件命令

    怎么将sql文件导入数据库_mysql导入sql文件命令打开命令提示符行输入以下命令进入本地数据库2.创建数据库新建一个新数据库用来导入.sql数据3.导入.sql文件在导入.sql文件之前,设置一下编码模式,防止出现中文乱码的情况(第一次导入就出现了中文乱码,所以中添加一步防止出现乱码情况)。以上就是将.sql文件导入数据库的全部操作,这是打开新建的数据库就能看到导入进去的表内容。…

    2022年10月2日
    0
  • pycharm下载插件_SiteD 插件中心

    pycharm下载插件_SiteD 插件中心我使用的PyCharm软件的版本:2016.1.4参考网站:https://www.jetbrains.com/help/pycharm/2016.1/installing-updating-and-uninstalling-repository-plugins.html给PyCharm软件添加plugins的图文操作(这里以添加Markdown插件)Step1.启动PyC

    2022年8月26日
    2
  • Java后台接收参数出现java.lang.Integer cannot be cast to java.lang.Double错误(已解决)[通俗易懂]

    Java后台接收参数出现java.lang.Integer cannot be cast to java.lang.Double错误(已解决)[通俗易懂]在Java接受前端传过来的数据信息的时候,使用List<List<double>>进行接收结果出现这个错误java.lang.Integercannotbecasttojava.lang.Double是类型转换出现的错误,当是这个数据在前端明明处理过,使用parseFloat转为了浮点数后端使用List<List>进行接收,此时也没有报错于是打开debug进行调试检查问题,发现传过来的数值如果是整数则为Integer类型,有小数的才是double类型

    2022年7月16日
    14
  • Vue(3)webstorm代码格式规范设置与vue模板配置

    Vue(3)webstorm代码格式规范设置与vue模板配置编译器代码格式规范设置通常我们写代码时,代码缩进都是4个空格,但是在前端中,据全球投票统计,建议使用2个空格来进行代码缩进。首先我们打开webstorm中的设置,如果使用的是mac的同学直接使用c

    2022年7月31日
    93
  • 叙事传输的说服机制_简述传输层实现可靠传输措施

    叙事传输的说服机制_简述传输层实现可靠传输措施博文《PUSCH上行跳频(1)-Type1频率跳频》里提到了为什么要使用PUSCH跳频,以及详细介绍了Type1方式的跳频,本文继续这个话题,介绍Type2方式的跳频。1.采用PUSCH跳频时需要注意的问题在上行子帧中,PUCCH信道处于带宽的高低两侧,或者说位于频带的边缘,PUSCH信道则位于带宽的中间。PUCCH信道也以RB对为基本单位,每个RB在频域上是12个子载波,时域上是1个时隙。需要注意PUCCH信道每个RB对的两个RB位置:第一个时隙的PUCCH信道位于带宽的低频位置,第二个时隙的

    2025年6月11日
    0

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

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