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

3.页面文件太小,无法完成操作

4.项目不要出现含有中文字符的目录文件或路径

5.AttributeError: ‘Upsample’ object has no attribute 'recompute_scale_factor’


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

YOLOv5 BUG修复记录_第1张图片

问题说明: 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()

YOLOv5 BUG修复记录_第2张图片

参考资料:

  • 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以及train.cache文件删掉,如下图:

YOLOv5 BUG修复记录_第3张图片

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

3.页面文件太小,无法完成操作

当你电脑配置太差时,训练时可能会出现一下错误;

YOLOv5 BUG修复记录_第4张图片

问题说明: 这是因为你电脑性能太差了,内存不足

解决方法:修改训练参数workers和batch-size,例如设置--batch-size=8  --workers=0,如

#!/usr/bin/env bash
 
#--------------训练yolov5s--------------
# 输出项目名称路径
project="runs/yolov5s_640"
# 训练和测试数据的路径
data="engine/configs/voc_local.yaml"
# YOLOv5模型配置文件
cfg="yolov5s.yaml"
# 训练超参数文件
hyp="data/hyps/hyp.scratch-v1.yaml"
# 预训练文件
weights="engine/pretrained/yolov5s.pt"
python train.py --data $data --cfg $cfg --hyp $hyp --weights $weights --batch-size 8 --imgsz 640 --workers 0 --project $project

4.项目不要出现含有中文字符的目录文件或路径

项目不要出现含有中文字符的目录文件或路径,否则会出现很多异常!!!!!!!!

5.AttributeError: ‘Upsample’ object has no attribute 'recompute_scale_factor’

YOLOv5 BUG修复记录_第5张图片

解决方法1:torch版本不一致导致的,请降低torch的版本为torch=1.7.0;

解决方法2:YOLOV5 训练好模型测试时出现问题:AttributeError: ‘Upsample‘ object has no attribute ‘recompute_scale_factor‘的解决方法

你可能感兴趣的:(Pytorch,result,type)