目标检测网络,验证网络时报错,如何解决?

目标检测,把visdrone数据集转换为coco数据集格式,用同一段代码转换train数据集eval数据集和test数据集然后训练。训练时没出现问题,但是验证的时候,同一段代码eval数据集没问题test数据集却报了以下错误。

Traceback (most recent call last):
  File "/home/eta/PycharmProjects/Pytorch-deep-learning/pytorch_classification/ml-cvnets-main/main_eval.py", line 142, in <module>
    main_worker_detection()
  File "/home/eta/PycharmProjects/Pytorch-deep-learning/pytorch_classification/ml-cvnets-main/main_eval.py", line 138, in main_worker_detection
    main_detection_evaluation(**kwargs)
  File "/home/eta/PycharmProjects/Pytorch-deep-learning/pytorch_classification/ml-cvnets-main/engine/eval_detection.py", line 354, in main_detection_evaluation
    predict_labeled_dataset(opts=opts, **kwargs)
  File "/home/eta/PycharmProjects/Pytorch-deep-learning/pytorch_classification/ml-cvnets-main/engine/eval_detection.py", line 145, in predict_labeled_dataset
    for img_idx, batch in tqdm(enumerate(val_loader)):
  File "/home/eta/anaconda3/envs/PY2.0/lib/python3.9/site-packages/tqdm/std.py", line 1185, in __iter__
    for obj in iterable:
  File "/home/eta/anaconda3/envs/PY2.0/lib/python3.9/site-packages/torch/utils/data/dataloader.py", line 521, in __next__
    data = self._next_data()
  File "/home/eta/anaconda3/envs/PY2.0/lib/python3.9/site-packages/torch/utils/data/dataloader.py", line 1203, in _next_data
    return self._process_data(data)
  File "/home/eta/anaconda3/envs/PY2.0/lib/python3.9/site-packages/torch/utils/data/dataloader.py", line 1229, in _process_data
    data.reraise()
  File "/home/eta/anaconda3/envs/PY2.0/lib/python3.9/site-packages/torch/_utils.py", line 434, in reraise
    raise exception
RuntimeError: Caught RuntimeError in DataLoader worker process 0.
Original Traceback (most recent call last):
  File "/home/eta/anaconda3/envs/PY2.0/lib/python3.9/site-packages/torch/utils/data/_utils/worker.py", line 287, in _worker_loop
    data = fetcher.fetch(index)
  File "/home/eta/anaconda3/envs/PY2.0/lib/python3.9/site-packages/torch/utils/data/_utils/fetch.py", line 52, in fetch
    return self.collate_fn(data)
  File "/home/eta/anaconda3/envs/PY2.0/lib/python3.9/site-packages/torch/utils/data/_utils/collate.py", line 74, in default_collate
    return {key: default_collate([d[key] for d in batch]) for key in elem}
  File "/home/eta/anaconda3/envs/PY2.0/lib/python3.9/site-packages/torch/utils/data/_utils/collate.py", line 74, in <dictcomp>
    return {key: default_collate([d[key] for d in batch]) for key in elem}
  File "/home/eta/anaconda3/envs/PY2.0/lib/python3.9/site-packages/torch/utils/data/_utils/collate.py", line 74, in default_collate
    return {key: default_collate([d[key] for d in batch]) for key in elem}
  File "/home/eta/anaconda3/envs/PY2.0/lib/python3.9/site-packages/torch/utils/data/_utils/collate.py", line 74, in <dictcomp>
    return {key: default_collate([d[key] for d in batch]) for key in elem}
  File "/home/eta/anaconda3/envs/PY2.0/lib/python3.9/site-packages/torch/utils/data/_utils/collate.py", line 70, in default_collate
    return torch.tensor(batch)
RuntimeError: Overflow when unpacking long

在网上搜不太到相关的东西,非常头疼,希望有解答,非常感谢

最大的可能应该是你加载数据集那里出的问题,你看下以coco格式加载数据集的时候,train,val和test三个数据集加载方式有什么不一致

同意楼上,看日志,确实是RuntimeError: Overflow when unpacking long,解包溢出;

直接在解包看看

overflow,估计是数据太大了,没有设置足够大的内存,提高运行内存试试

数据包太大了,解包时超出了内存限制。
可以加大内存或者增加数据包大小限制

https://stackoverflow.com/questions/50617917/overflow-when-unpacking-long-pytorch

img

img

应该是内存不够,造成了数据溢出。把缓存调 大一点。

RuntimeError: Overflow when unpacking long,内存不够啊

参考:https://stackoverflow.com/questions/50617917/overflow-when-unpacking-long-pytorch

Overflow when unpacking:解包溢出