YOLOv5 BUG修复记录
Posted AI吃大瓜
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了YOLOv5 BUG修复记录相关的知识,希望对你有一定的参考价值。
目录
1. RuntimeError: result type Float can‘t be cast to the desired output type __int64
2. _pickle.UnpicklingError: STACK_GLOBAL requires str
YOLOv5 BUG修复记录
- 官网: https://github.com/ultralytics/yolov5
- 官方依赖环境:torch>=1.7.0 torchvision>=0.8.1
# pip install -r requirements.txt
# base ----------------------------------------
matplotlib>=3.2.2
numpy>=1.18.5
opencv-python>=4.1.2
Pillow
PyYAML>=5.3.1
scipy>=1.4.1
torch>=1.7.0
torchvision>=0.8.1
tqdm>=4.41.0
# logging -------------------------------------
tensorboard>=2.4.1
# wandb
# plotting ------------------------------------
seaborn>=0.11.0
pandas
# export --------------------------------------
# coremltools>=4.1
# onnx>=1.9.0
# scikit-learn==0.19.2 # for coreml quantization
# extras --------------------------------------
# Cython # for pycocotools https://github.com/cocodataset/cocoapi/issues/172
# pycocotools>=2.0 # COCO mAP
# albumentations>=1.0.3
thop # FLOPs computation
官方开发环境是torch>=1.7.0 torchvision>=0.8.1,若torch版本没有对应,可能出现很多未知的错误,以下我碰到的一些问题以及修复方法:
1. RuntimeError: result type Float can‘t be cast to the desired output type __int64
问题说明: torch类型不对应,这是torch版本太高导致的
解决方法:降低torch的版本为torch=1.7.0;或者
修改utils/loss.py文件,将:
gain = torch.ones(7, device=targets.device)
改为:
gain = torch.ones(7, device=targets.device).long()
参考资料:
- RuntimeError: result type Float can‘t be cast to the desired output type __int64报错解决方法_虚空的困扰的博客-CSDN博客_result type float
- 解决错误:RuntimeError: result type Float can‘t be cast to the desired output type __int64_顾悦西的博客-CSDN博客
2. _pickle.UnpicklingError: STACK_GLOBAL requires str
在使用YOLOv5进行训练时,可能会出现_pickle.UnpicklingError: STACK_GLOBAL requires str 这样的错误,解决办法是,将数据集中的labels.cache文件删掉,如下图:
在进行训练就好了,一般更换工程进行训练时,都需要将这个文件删掉才可以正常训练。
以上是关于YOLOv5 BUG修复记录的主要内容,如果未能解决你的问题,请参考以下文章