以下为自己学习所用,不足之处请在评论区指出
一.租用auto dl服务器
1.1注册auto dl账号
登录auto dl 官网,使用手机号注册即可。
1.2租卡
在首页点击“算力市场”,可以根据自己的需求选用不同类型的服务器。
我自己用的数据集是DUO(COCO格式),大小2G左右,这里租用的是3080系列。
1.3选择环境
打开mmdetection官网,进入“开始第一步”,查看当前mmdetection所需要的版本型号。
官网显示需要PyTorch1.8版本及以上,因此这里我们选择pytorch1.9.0版本,充钱点击创建即可。
点击创建后,就会跳入以下界面,这就代表已经可以正常使用云服务器了。
二.上传mmdetection及数据集
2.1打开Jupyter
点击下图中绿色箭头的位置,就可以打开Jupyter了,后续训练模型都是在这里进行,这里没有连接Pycharm的原因是本人用的是Pycharm社区版,远程连接服务器好像只有专业版才可以。
2.2上传自己的数据集
这里我个人的数据集还有代码已经提前下载到本地了,因此直接上传到Jupyter即可。由于我已经将数据集放置在mmdetection文件夹下,所以直接对mmdetection整个文件夹打包压缩即可(这里看到有博主这么做,个人认为方便上传)
准备好压缩后的mmdetection,下一步在Jupyter中点击绿色箭头处上传即可,这一步比较漫长(我的压缩包6G左右,上传需要半个小时)
2.3解压上传文件
打开终端
文件夹大小小于2G的直接用以下命令即可解压,在上面绿色箭头打开的终端页面输入unzip +压缩包名称即可解压。
unzip mmdetection.zip
文件夹比较大的,用此命令会报错,解决办法参考该博主的文章http://t.csdnimg.cn/kynX3 。
最后输入该命令即可成功解压上传的文件压缩包。
7za x mmdetection.zip -r
三.配置mmdetection
3.1激活base环境
初次打开终端,不能自动进入base环境下,这时候需要在终端界面输入以下代码,关闭,重新打开一个终端界面即可正常进入base环境下。
conda init
3.2进入子目录
输入以下命令,进入到mmdetection文件夹下。
cd mmdetection
cd .. #返回上级目录
3.3配置mmdetection
这里推荐开始你的第一步 — MMDetection 3.2.0 文档
跟着官网的步骤配置即可,这里我是依次输入以下命令。
pip install -r requirments.txt
pip install -U openmim
mim install mmengine
mim install "mmcv>=2.0.0"
mim install mmdet
这里没有使用官网推荐的用wget源码下载mmdetection的原因是我已经将该项目上传至jupyter,故直接用mim install mmdet下载mmdet作为依赖或第三方 Python 包.
3.4改写配置文件
由于我所采用的数据集只有4个类别,所以需要在类别处进行修改才能训练。我看了很多博主都需要在子文件处进行修改,但是官网给的方案是重新写一个自己的配置文件,这样不需要对源码进行修改,个人推荐用这种方法,官网步骤参考下面的链接。在标准数据集上训练预定义的模型 — MMDetection 3.2.0 文档
以下是我个人的配置文件,我选用的是retinanet模型,首先继承一个retinanet配置文件,接着更改数据集还有路径即可,至于为什么路径要这样设置,因为在jupyter上试错很多次发现只有这种格式能成功跑通。
四.训练网络
4.1在终端输入命令进行训练
输入以下命令,python+train.py+配置文件路径即可。
python ./tools/train.py ./configs/retinanet/test01_retinanet_r18_fpn_1x_coco.py
4.2训练结果出现nan值的情况
我在训练时出现了刚开始loss
结果有值,后面loss:nan的情况,这可能时学习率没有调整的问题,打开终端,重新输入以下代码即可。
python ./tools/train.py ./configs/retinanet/test01_retinanet_r18_fpn_1x_coco.py --auto-scale-lr
4.3训练界面