谷歌Colab用免费GPU训练自己的YOLOv3数据
简介
在迫不得已使用windows作为自己训练数据环境的情况下,可能会遇到以下问题:
- windows下配置相关环境较为复杂
- 自己电脑的GPU算力较低或者不支持cuda,GPU显存不足
在此情况下,推荐使用云GPU来实现数据的训练,而Google的Colabortory就提供免费的云端GPU计算服务,并且提供的云服务器中已经配置好了所需的cuda、cudnn、opencv等相关所需。但是colab所分配的云GPU,在12个小时后会回收(据说),在训练时最好挂载谷歌云盘,并将必要文件进行储存。
yolov4相关
基于项目https://github.com/AlexeyAB/darknet,此项目的维护者在YOLO系列(v1-v3)作者 Joe Redmon 宣布不再继续CV方向的研究后接管并更新了yolov4。虽然项目在4.24更新了yolov4的相关内容,但是之前的版本的yolov3仍可以正常使用,在经过我的最新验证,此文章仍可正常应用。
自己最近也运行了yolov4并对自己的数据集进行了训练,yolov4的训练使用流程和此部分的yolov3如出一辙,训练测试所需的相关文件类型相同,所需要更改的不过更换yolov4.cfg和下载yolov4的预训练权重。
具体详见:https://blog.csdn.net/longlong068/article/details/105791941
谷歌Colab的使用
-
首先需要创建谷歌云盘账号:https://drive.google.com
-
打开谷歌云盘
右键选择创建一个Colab的.ipynb文件,如果没有上图的Googel Colab选项,点击关联更多应用添加。
-
将.ipynb文件装载谷歌云盘,方便Googel云盘和Colab分配的云GPU进行文件相互传输。
点击装载Google云端硬盘,或者直接在左边的命令行输入指令进行装载,指令如下:
from google.colab import drive drive.mount('/content/drive')
装载成功后可见:
其中的My Drive中的文件即为Google云盘中的文件。
-
在生成的ipynb文件中进行设置GPU可用、项目的git、训练等后续操作。
运用Colab训练自己的Yolov3数据集
此部分的Yolov3项目基于https://github.com/AlexeyAB/darknet。
也是现在最新的yolov4的项目地址~
1.设置GPU可用
2.clone项目构建Darknet
git clone项目
输入并运行以下命令来git项目:
!git clone https://github.com/AlexeyAB/darknet
成功后在左边的文件列表可以找到项目文件darknet。
修改项目的makefile文件,使编译生成的程序可以使用GPU和OpenCV
运行以下命令,将会自动修makefile
# 修改makefile 将OpenCV和GPU设置为可用
%cd darknet
!sed -i 's/OPENCV=0/OPENCV=1/' Makefile
!sed -i 's/GPU=0/GPU=1/' Makefile
!sed -i 's/CUDNN=0/CUDNN=1/' Makefile
验证CUDA版本
#验证CUDA版本
!/usr/local/cuda/bin/nvcc --version
输出结果如下:
编译项目生成darknet运行程序
!make
编译生成可执行文件darknet
3.运行demo显示bbox
此步只为了检验环境和编译成功与否,可以跳过此步直接训练自己的数据集。