YOLOv5 BUG修复记录

Posted AI吃大瓜

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了YOLOv5 BUG修复记录相关的知识,希望对你有一定的参考价值。

目录

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修复记录

# 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()

参考资料:

2. _pickle.UnpicklingError: STACK_GLOBAL requires str

在使用YOLOv5进行训练时,可能会出现_pickle.UnpicklingError: STACK_GLOBAL requires str 这样的错误,解决办法是,将数据集中的labels.cache文件删掉,如下图:

 在进行训练就好了,一般更换工程进行训练时,都需要将这个文件删掉才可以正常训练。

以上是关于YOLOv5 BUG修复记录的主要内容,如果未能解决你的问题,请参考以下文章

JSPatch-无需更新APP即时修复bug

当你的系统依赖于某个bug...

系统中的BUG是啥来的

10 逻辑完善以及bug修复

修复bug的流年

记录一次BUG修复-Entity Framwork SaveChanges()失效