# 使用model仓库的YOLOV5训练没有混合精度配置

**1. 系统环境**

硬件环境\(Ascend/GPU/CPU\): Ascend/GPU/CPU

软件环境: MindSpore 版本: 2.4

执行模式： 不限

Python 版本: 3.9

操作系统平台: linux

**2. 报错信息**

使用models仓库的YOLOv5模型进行训练，但是无法进行混合精度的配置：

[https://gitee.com/mindspore/models/blob/master/official/cv/YOLOv5/train.py](https://gitee.com/mindspore/models/blob/master/official/cv/YOLOv5/train.py)。

**3. 根因分析**

在models仓库的YOLOv5模型：[https://gitee.com/mindspore/models/blob/master/official/cv/YOLOv5/train.py](https://gitee.com/mindspore/models/blob/master/official/cv/YOLOv5/train.py)这个没有设置混合精度的代码

**4. 解决方案**

方法一：加一下数据格式代码，调用network.to\(mindspore.float16\)，把这个network对象中的算子都强行走fp16了。

```
network = YOLOV5(is_training=True, version=dict_version[config.yolov5_version])
```

这种方法也会把loss的network也强行按照fp16进行计算，可能会有loss精度问题。

方法二：使用mindyolo套件中的yolov5模型，里面直接可以通过参数配置混合精度模式（O0/O1/O2/O3），loss的精度模式也可以单独配置，仓库地址：[https://github.com/mindspore-lab/mindyolo](https://gitee.com/link?target=https%253A%252F%252Fgithub.com%252Fmindspore-lab%252Fmindyolo)

