首先大家会按照官方的readme文件进行安装,连接:
https://github.com/ultralytics/yolov5
此时有两点需要注意:
1、强烈建议大家使用conda虚拟环境安装,这样不会扰乱其他项目的Python环境,关于conda虚拟环境的使用,建议参考我的另一篇博客:
举例如下:
conda create --name yolov5 python=3.8
conda activate yolov5 # linux下
2、进入conda环境后,按照官方的程序下载源码和安装依赖
$ git clone https://github.com/ultralytics/yolov5
$ cd yolov5
$ pip install -r requirements.txt
3、需要测试torch是否可用,以及是否是GPU
$ Python
import torch
torch.__version__ # 打印torch版本
torch.cuda.is_available() # 查看GPU是否可用
4、如果GPU不可用,显示如下:
这种情况就是你的cuda版本过低导致的pytorch版本不匹配,原因就是requirements.sh里面关于pytorch的安装版本的描述,会指向几乎最新的版本,而你的cuda版本低就会安装CPU版本。
如何解决:
第一种,升级你的cuda版本,然后重新安装(pip install -r requerments.txt)。这种不太建议,因为,很多情况你和别人共享机器,即使不是共享机器也会影响你的其他conda环境。
第二种,安装支持你cuda版本的YOLOV5支持的版本,比如cuda 10.1 满足YOLOv5的版本为pytorch 1.7.1,这时要注意,使用pip安装,切勿使用conda安装,否则依然找不到。具体操作如下:
1)卸载现有torch
pip uninstall torch
pip uninstall torchvision
2)查找对应pip 版本:
https://pytorch.org/get-started/previous-versions/ ,选择自己的操作系统和cuda对应的pip安装服务,如下:
3)再次测试,应该就可用了。
$ Python
import torch
torch.__version__ # 打印torch版本
torch.cuda.is_available() # 查看GPU是否可用
5、使用GPU训练,参考这个网页进行训练:
https://github.com/ultralytics/yolov5/issues/475,而不是主页上的,主页上的会仅仅使用CPU训练。当使用单机多卡时,一定要使用最新的
DistributedDataParallel而不要再使用老旧的DataParallel方式。
如果加上训练epoch,如下:
python -m torch.distributed.launch --nproc_per_node 4 train.py --epochs 100 --batch 128 --data ./data/contraband_rmrb.yaml --weights ./yolov5l.pt --device 0,1,2,3