运行YOLOv7时候报_pickle.UnpicklingError: STACK_GLOBAL requires str错误
Traceback (most recent call last):
File "/22085400416/leilanfang/yolov7-coupling-main/train.py", line 616, in <module>
train(hyp, opt, device, tb_writer)
File "/22085400416/leilanfang/yolov7-coupling-main/train.py", line 245, in train
dataloader, dataset = create_dataloader(train_path, imgsz, batch_size, gs, opt,
File "/22085400416/leilanfang/yolov7-coupling-main/utils/datasets.py", line 69, in create_dataloader
dataset = LoadImagesAndLabels(path, imgsz, batch_size,
File "/22085400416/leilanfang/yolov7-coupling-main/utils/datasets.py", line 392, in __init__
cache, exists = torch.load(cache_path), True # load
File "/opt/conda/lib/python3.8/site-packages/torch/serialization.py", line 713, in load
return _legacy_load(opened_file, map_location, pickle_module, **pickle_load_args)
File "/opt/conda/lib/python3.8/site-packages/torch/serialization.py", line 920, in _legacy_load
magic_number = pickle_module.load(f, **pickle_load_args)
_pickle.UnpicklingError: STACK_GLOBAL requires str
原因:由于数据集在跑之前代码时存在缓存
解决办法:删除labels中的train.cache和val.cache两个文件
参考资料如下:
1.https://blog.csdn.net/2202_75422333/article/details/138118802
2.https://blog.csdn.net/m0_47090348/article/details/136407576