目录
方法二:修改 opt.yaml(如果项目自动保存了参数文件)
一、注册账号
注册账号较为简单,这里不多说,大家自行去网站注册就好(注:学生用户可以学生认证,有优惠)
这里附上AutoDL网站:AutoDL算力云 | 弹性、好用、省钱。租GPU就上AutoDL
二、创建实例
点击AutoDL网站页眉的算力市场,空闲的GPU会显示在最前面,如果发现第一页都没有空闲的,就切换地区(不要翻页找了,我刚开始用的时候还傻傻地找,汗颜)
还要注意看你租用的服务器有没有GPU,有的租费很便宜(1元以下的)就没有GPU。至于怎么选择GPU,这里给个参考:我训练的数据集大概有两三千张图像,选择上图1.58元一小时的就够用。大家可以自行尝试一下,试错成本不高。
然后就是点击蓝色的按钮(x卡可租),这里需要选择基础镜像(注:这里选择后面进服务器还可以自己重新配置,选错了问题也不大),我选择的版本如下图:
点击页面右上角的控制台-容器实例,就可以看到自己创建的实例:
三、上传和下载文件
实例创建完之后,就要把yolov9模型代码的压缩包上传到你创建的实例(云服务器)和租用GPU训练完模型后从服务器(你创建的实例里)下载文件到本地,有如下两种方式:
3.1 用JupyterLab上传和下载文件
帮助文档里有介绍JupyterLab上传还有其他方式(SCP远程拷贝、FileZilla和XShell):AutoDL帮助文档
下载文件很简单,首先使用压缩命令压缩你的文件,再右键该文件的压缩包即可下载。
这里,我压缩成zip格式,在终端用的命令是
zip -r <自定义压缩包名称>.zip <待压缩目录的路径>
压缩成其他格式的压缩命令看这:AutoDL帮助文档
3.2 用Xftp上传和下载文件
Xftp 是由 NetSarang 公司开发的一款高性能 FTP/SFTP 客户端工具,专为 Windows 和 macOS 用户设计。它支持多种文件传输协议,并通过直观的图形界面简化远程服务器文件管理,广泛应用于 (a.网站开发:上传网页文件到远程服务器、b.数据备份:定期下载服务器数据库或日志文件、c.运维管理:批量更新服务器配置文件、d.协作共享:在团队内部共享大型项目文件)等场景。
1、下载Xftp
下载步骤很简单,这里就不多说了,正常下载就好
2、打开Xftp连接你创建的主机(服务器)
点击左上角 文件-新建 就会弹出下面的界面:
然后复制你先前创建好的实例的SSH登录那一列的信息,即:
这里给出个例子:比如你复制的登录指令是 ssh -p 66666 root@connect.bjb1.seetacloud.com
其中,66666就是端口号,root就是用户名,connect.bjb1.seetacloud.com就是主机,按照这个填写上面的新建会话页面,然后再复制密码填写到上面的新建会话页面即可连接服务器,如下图所示:
连接好之后的界面,一般情况下,左边部分是本地,右边是服务器,界面图如下:
把左边的压缩文件拖到右边即是上传,把右边的压缩文件拖到左边即是下载,这里不多赘述,大家自行去试一下即可。
四、配置环境
4.1 解压上传的压缩包
开机后,打开JupyterLab,点击终端
解压你上传的压缩文件,这里我是zip格式,所以我用的命令是:
unzip <待解压压缩包名称>.zip -d <解压到哪个路径>
其他格式的解压命令看这里:AutoDL帮助文档
注:若没有指明解压路径,一般情况下默认解压到你上传的压缩文件所在路径。
4.2 创建并配置环境
创建和配置环境,我用到的anaconda命令看这里:在训练模型前配置环境时,我常用的anaconda命令_annaconda进去环境指令-CSDN博客
1、创建并进入虚拟环境
创建环境命令:
conda create --name env_name python=3.9 # 同时创建环境并下载指定python版本,(env_name自己命名)
进入环境命令:
conda activate env_name
2、配置环境
yolov9模型有requirements.txt这文本,文本中都有记录该模型配置环境时需要的各种包的版本的。要下载这份文本下的安装包,我们就要到该目录下读到这份文件。
所以,先是切换路径指令:
cd 存放requirements.txt的路径
再是读取这份文件下载相应的包
下载命令:
pip install -r requirements.txt -i https://pypi.tuna.tsinghua.edu.cn/simple
就会把requirements.txt文档中的包都下载了,如下图所示:
五、训练模型
这里就不用多说了,这篇博客主要介绍怎么使用AutoDL,后续如果有空,我再补上这块内容,这里就简单介绍一下。
我用的是train_dual.py,就在该python文件修改自己的参数,然后直接在终端输入
python train_dual.py
即可训练。
六、其他的我遇到的一些小问题
以下是一些比较个性化的问题,我随笔记录一下,大家也就随便看看。
6.1 系统盘空间不够
解决方法有如下:
1、把数据存放在数据盘/root/autodl-tmp
2、清理垃圾
这里我刚开始的误区就是认为把文件删掉了,就可以腾出空间
实际上,这被删除的文件是在类比于window系统的回收站里,仍占着空间
终端命令 :
du -sh /root/miniconda3/pkgs/ && rm -rf /root/miniconda3/pkgs/* # conda的历史包
du -sh /root/.local/share/Trash && rm -rf /root/.local/share/Trash # jupyterlab的回收站
详细请看这里:AutoDL帮助文档
6.2 终端使用conda命令不被识别
解决方案:在终端输入conda init,然后再关闭终端,再重启即可。
6.3 如何中断训练和中断后如何继续训练或增减训练轮次
1、中断训练
你可以通过按下 Ctrl + C
来手动中断训练,或者在代码中设置中止条件。
2、继续训练
YOLOv9 一般是基于 Ultralytics
或者相似的框架(如 YOLOv5/YOLOv8 风格),继续训练的方式如下:
基本命令:
python train_dual.py --cfg cfg/yolov9.yaml --data data.yaml --weights runs/train/exp/weights/last.pt --resume
参数说明:
--weights
:指定你中断时保存的权重,一般是 last.pt
。
--resume
:表示恢复训练。
注意:
某些版本中 --resume
自动寻找上一次的训练路径,你可以不指定 --weights
。推荐查看官方文档或命令行 help:python train.py --help
。
3、增减训练轮次的方法
第一步:修改 opt.yaml
(如果项目自动保存了参数文件)
在 runs/train/exp/
目录下,可能有个 opt.yaml
文件,里面记录了训练参数。
第二步:恢复训练并追加轮次
手动修改其中的 epochs:
项,然后再使用 --resume
恢复训练。
python train_dual.py --weights runs/train/exp/weights/last.pt --epochs 100 --resume
注意:如果你中断在第 50 轮,想继续训练到第 100 轮:--epochs 100
是总训练轮次(不是继续训练的轮数)。所以如果已经训练了 50 轮,这个命令会再训练 50轮(直到达到总共 100 轮)。