一.开始二.修改并上传项目文件
1、下载项目2、制作coco数据集3、修改参数
3.1、configs/_bash_需要修改的参数
(1)configs/ _base_ /datasets/coco_detection.py(2)configs/ _base_ /models/cascade_rcnn_r50_fpn.py(或其他模型)(3)configs/ _base_ /schedules/schedule_1x.py(schedule_2x.py)(4)default_runtime.py 3.2、configs/具体模型_需要修改的参数
(1)不需要修改的模型类型(2)需要修改的模型 4、上传项目 三.新建colab笔记本(mmdet.ipynb)
1、查看GPU2、连接到自己的Google Drive3、进入到Drive根目录4、下载mmcv-full5、下载requirements需求文件 6、编译文件 7、开始训练 8、中止后继续训练 四.结语 一.开始
本文记录了在谷歌平台colab上使用mmdetV2.20训练自己的模型,包括具体流程和ipynb代码,使用colab的优点是价格较其他云平台较实惠,并且容易上手,缺点是存在限额,存在人机验证,每次最多使用24小时
二.修改并上传项目文件出于方便修改的原因,我是在本地先下载mmdet项目,修改好具体代码,然后再上传到Google drive的。当然也可以在colab/drive中修改代码,不过稍微麻烦一点
1、下载项目到mmdet官网下载项目文件,本次项目选用了最新的V2.20
2、制作coco数据集 制作自己的coco数据集,具体制作流程参考我之前发的文章,然后在mmdet项目下创建新文件夹data,将数据集放在里面,详细的信息如下图
需要修改的文件全部在config文件夹下,主要有两个文件夹
3.1、configs/_bash_需要修改的参数configs/ bash 下的文件(定义基本的训练通用参数, 重点!)configs/具体模型(使用什么模型就修改对应文件参数)
(1)configs/ base /datasets/coco_detection.py首先修改训练/测试时候的 图片尺寸,我设置是640x640;其次修改训练/验证的 batch_size,分别对应第二个图的samples_per_gpu和interval,我这里设置是16(这个看GPU的性能)
(2)configs/ base /models/cascade_rcnn_r50_fpn.py(或其他模型)这一步主要是修改种类数,修改 num_classes 为自己的类别(不需要考虑背景+1,有几种就修改成几种),这里我的瑕疵类别有3种
(3)configs/ base /schedules/schedule_1x.py(schedule_2x.py)修改训练的最大轮次 max_epochs 和学习率 lr,主要是根据自己的训练要求来进行修改
(4)default_runtime.py3.2、configs/具体模型_需要修改的参数修改checkpoint_config的 interval 参数,这里设置为10的作用是:每10个epochs储存一次weights权值文件,设置大一点可以减少内存占用(cascade-rcnn模型每一个大概500M,跑200epochs如果不设置将会占用100G内存空间)
(1)不需要修改的模型类型例如faster-rcnn和cascade-rcnn,特点是文件里面只有 引用 _bash_的代码
(2)需要修改的模型4、上传项目例如yolov3就需要重新修改num_classes种类数/img_scale图片尺寸,特点是下面还 附带 一些代码
在Google Drive中先创建一个空的文件夹命名为mmdet(或者其他),之后在该文件下上传整个项目(Folder upload),
至此项目修改完成,准备到colab中写代码运行项目
打开Colab,首先新建mmdet.ipynb笔记本,然后打开 ①修改,将笔记本设置为GPU模型,有条件升级为高RAM(Colba Pro功能),之后点击 ②连接 到colab的虚拟机,然后开始输入代码进行训练,一般colab pro有更大的可能分到P100的显卡,普通用户可能是T4显卡或者K80。
笔记本中输入的代码如下(点击左上角+代码开始输入):
!nvidia-smi
2、连接到自己的Google Driveimport osfrom google.colab import drivedrive.mount('/content/drive')
3、进入到Drive根目录%cd /content/drive/%cd My Drive/mmdet
4、下载mmcv-full切记要标注 版本号,就是下面代码后面的cu111/torch1.10,不然下载很久很久,甚至卡住
!pip install mmcv-full -f https://download.openmmlab.com/mmcv/dist/cu111/torch1.10.0/index.html
5、下载requirements需求文件%cd mmdetection!pip install cython && pip --no-cache-dir install -r requirements.txt
6、编译文件!python setup.py develop
7、开始训练根据自己需求添加–no-validate,这个代码含义是:训练过程中不进行验证,训练过程不验证可以在训练结束后,自己验证,将会加快训练。
!python tools/train.py configs/cascade_rcnn/cascade_rcnn_r50_fpn_1x_coco.py --no-validate
8、中止后继续训练如果训练中断,例如虚拟机到24小时自动断开,或者没有及时进行人机认证,都会导致断开虚拟机,这个时候需要重新进行1-6步,然后跳过第7步,执行第8步继续训练(-- auto-resume)
!python tools/train.py configs/cascade_rcnn/cascade_rcnn_r50_fpn_1x_coco.py --auto-resume --no-validate
四.结语 至此在colab使用mmdet训练模型的过程就结束了,可以根据自己需求选择开通colab pro或者pro+这样训练资源更多。