【yolov3 训练报错:TypeError: ‘NoneType’ object is not subscriptable / Caught FileNotFoundError in Data】

在使用YOLOv3进行训练时遇到'NoneType' object is not subscriptable的错误,根源在于数据集中的图片命名含有空格,导致列表读取失败。解决方案是检查并修正数据集路径,确保无空格。同时,其他常见错误如 CaughtFileNotFoundError 和 CaughtKeyError 通常与图片和标注文件不匹配有关,需检查标注文件的正确性。确保图片与标注文件一一对应,且命名无误。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

【yolov3 训练报错:TypeError: ‘NoneType’ object is not subscriptable】

情况描述:

  • 在训练代码中修改数据集读取路径,运行 train.py 文件 产生报错:

在这里插入图片描述

解决:

  • 经过网上搜索借鉴以及查看,发现是数据集(训练集/验证集)文件夹中的图片命名中存在空格,导致数据列表读取为空,本质上是数据集的路径问题。

  • 训练时,要仔细检查数据的路径读取,可以在代码中 print 出来相关参数,以验证查看。

  • 若出现其他报错:

  • Caught FileNotFoundError in DataLoader worker process 0

一般也是数据集有问题,如图片和标注文件不匹配,导致找不到文件

  • KeyError Caught KeyError in DataLoader worker process 0

查看标注文件是不是存在 bbox 名字不对,或者命名中存在空格

相关链接推送:

------------------------------------------Start training------------------------------------------- [rank0]: Traceback (most recent call last): [rank0]: File "train.py", line 113, in <module> [rank0]: main(args) [rank0]: File "train.py", line 75, in main [rank0]: solver.fit() [rank0]: File "/root/D-FINE-master/src/solver/det_solver.py", line 76, in fit [rank0]: train_stats = train_one_epoch( [rank0]: File "/root/D-FINE-master/src/solver/det_engine.py", line 59, in train_one_epoch [rank0]: for i, (samples, targets) in enumerate( [rank0]: File "/root/D-FINE-master/src/misc/logger.py", line 217, in log_every [rank0]: for obj in iterable: [rank0]: File "/root/miniconda3/lib/python3.8/site-packages/torch/utils/data/dataloader.py", line 630, in __next__ [rank0]: data = self._next_data() [rank0]: File "/root/miniconda3/lib/python3.8/site-packages/torch/utils/data/dataloader.py", line 1344, in _next_data [rank0]: return self._process_data(data) [rank0]: File "/root/miniconda3/lib/python3.8/site-packages/torch/utils/data/dataloader.py", line 1370, in _process_data [rank0]: data.reraise() [rank0]: File "/root/miniconda3/lib/python3.8/site-packages/torch/_utils.py", line 706, in reraise [rank0]: raise exception [rank0]: TypeError: Caught TypeError in DataLoader worker process 0. [rank0]: Original Traceback (most recent call last): [rank0]: File "/root/miniconda3/lib/python3.8/site-packages/torch/utils/data/_utils/worker.py", line 309, in _worker_loop [rank0]: data = fetcher.fetch(index) # type: ignore[possibly-undefined] [rank0]: File "/root/miniconda3/lib/python3.8/site-packages/torch/utils/data/_utils/fetch.py", line 55, in fetch [rank0]: return self.collate_fn(data) [rank0]: File "/root/D-FINE-master/src/data/dataloader.py", line 107, in __call__ [rank0]: images = torch.cat([x[0][None] for x in items], dim=0) [rank0]: File "/root/D-FINE-master/src/data/dataloader.py", line 107, in <listcomp> [rank0]: images = torch.cat([x[0][None] for x in items], dim=0) [rank0]: TypeError: &#39;Image&#39; object is not subscriptable E0716 16:25:05.738897 139635049563328 torch/distributed/elastic/multiprocessing/api.py:833] failed (exitcode: 1) local_rank: 0 (pid: 796686) of binary: /root/miniconda3/bin/python Traceback (most recent call last): File "/root/miniconda3/bin/torchrun", line 8, in <module> sys.exit(main()) File "/root/miniconda3/lib/python3.8/site-packages/torch/distributed/elastic/multiprocessing/errors/__init__.py", line 348, in wrapper return f(*args, **kwargs) File "/root/miniconda3/lib/python3.8/site-packages/torch/distributed/run.py", line 901, in main run(args) File "/root/miniconda3/lib/python3.8/site-packages/torch/distributed/run.py", line 892, in run elastic_launch( File "/root/miniconda3/lib/python3.8/site-packages/torch/distributed/launcher/api.py", line 133, in __call__ return launch_agent(self._config, self._entrypoint, list(args)) File "/root/miniconda3/lib/python3.8/site-packages/torch/distributed/launcher/api.py", line 264, in launch_agent raise ChildFailedError( torch.distributed.elastic.multiprocessing.errors.ChildFailedError: ============================================================ train.py FAILED ------------------------------------------------------------ Failures: <NO_OTHER_FAILURES> ------------------------------------------------------------ Root Cause (first observed failure): [0]: time : 2025-07-16_16:25:05 host : autodl-container-9efe41855c-0b570216 rank : 0 (local_rank: 0) exitcode : 1 (pid: 796686) error_file: <N/A> traceback : To enable traceback see: https://pytorch.org/docs/stable/elastic/errors.html ============================================================
最新发布
07-17
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值