1. 代码的克隆与软件的下载
1.1 代码的克隆
Yolov5的代码是开源的,可以从其GitHub代码页面进行克隆,网址如下:
截至2024年6月,Yolov5代码已更新至v7.0版本,可以选择v7.0版本进行训练,如下图所示,确定好需要下载的版本后,克隆该代码。
1.2 软件的下载
必须使用PyCharm专业版才能与云服务器进行远程连接,常规免费使用版本为社区版,无法与云服务器远程连接。破解码激活PyCharm专业版的方式可参考下面的博客。
2. 云服务器前期准备
2.1 注册账号
进入恒源云官网使用手机号进行账号注册。
2.2 上传个人数据
推荐使用oss命令行工具进行个人数据上传,官方教程可以在恒源云个人页面,进入“我的数据”,在“oss存储”方式中,查看“上传操作指引”与“oss安装”
① 首先下载好Windows系统的oss命令行工具,链接,安装好后双击即可运行oss命令。
② 进入cmd,执行login命令,输入恒源云平台账号和密码登录,账号为手机号。
Input your command:
-->login
Username:156********
Password:***********
156******** login successfully!
③ 若想要创建文件夹来存放你的数据,输入mkdir oss://xxx,即可成功创建个人文件夹。这一步不是必须的,可以直接将你的本地数据上传至服务器个人数据,创建文件夹仅是为了方便整理。
Input your command:
-->mkdir oss://dataset
Create folder [oss://] successfully, request id [0000019024E984E09010FC21008DDE56]
Create folder [oss://dataset/] successfully, request id [0000019024E985179010FC21008DDE57]
④ 执行cp 压缩文件所在本地目录\xxx.zip oss://命令,上传本地当前目录数据(将数据打包成 zip、tar等常用格式的压缩包)到个人数据根目录。若需要上传至特定文件夹,命令即为cp 压缩文件所在本地目录\xxx.zip oss://xxx
本地数据上传完毕后,即可在恒源云个人主页中“我的数据”、“个人数据目录”中找到上传的本地数据。
Input your command:
-->cp C:\aaa\dataset\iaaa.zip oss://datasets/
Start at 2024-06-16 16:47:06.0895598 +0000 UTC
Parallel: 5 Jobs: 5
Threshold: 50.00MB PartSize: auto
VerifyLength: false VerifyMd5: false
CheckpointDir: C:\Users\Lenovo\.hycloud_ossutil_checkpoint
[--------------------------------] 100.00% 1.38MB/s 820.44MB/820.44MB 9m56.133s
Waiting for the uploaded key to be completed on server side.
Upload successfully, 820.44MB, n/a, C:\aaa\dataset\iaaa.zip --> oss://datasets/iaaa.zip, cost [597256], status [200], request id [0000018446CB0CCC9011CC75BE111111]
2.3 创建实例
依次点击“我的实例”、“创建实例”,根据自己的训练需求对所需显卡进行选择。比较推荐按量计费。
在笔者自己的模型训练过程中,出现了只要是3080级别以下的显卡,对实例环境进行检测时,都出现的cuda环境无法识别的情况,无奈只能选择3080及以上级别的显卡。
笔者选择显卡版本为3080Ti-12G,可以在实例镜像中按照自己的需求选择搭建的环境,选好之后我们的base环境里就直接给你搭好了不用自己创建。
创建好的实例如图所示,请注意,刚开始创建实例时,它就已经开始运行了,即已经开始收费,若不立刻开始模型训练,可以先将实例关机,在右侧的“实例管理”选择“关机”即可。
2.4 上传实例数据
在我的实例中的快捷工具选择JupterLab,进入示例数据文件夹,此时右侧导航栏就是实例的目录,找到hy-tmp文件夹,那里就是存放我们的代码和数据集的地方。
在上图界面中进入“终端” 。
在右侧编辑器中写入oss login,登录账号。
(base) root@I1aa48ac7ea02001bb3:/# oss login
Username:156**********
Password:*************
156********** login successfully!
写入cd /hy-tmp,进入文件夹hy-tmp
(base) root@I1aa48ac7ea02001bb3:/# cd /hy-tmp
(base) root@I1aa48ac7ea02001bb3:/hy-tmp#
再写入oss cp oss://xxx.zip .(必须加点)将个人数据中的xxx.zip下载到当前目录中
(base) root@I1aa48ac7ea02001bb3:/hy-tmp# oss cp oss://1.zip .
Start at 2024-06-17 10:19:20.414615114 +0000 UTC
Parallel: 5 Jobs: 5
Threshold: 50.00MB PartSize: auto
VerifyLength: false VerifyMd5: false
CheckpointDir: /root/.hycloud_ossutil_checkpoint
TempFileDir: /hy-tmp
[-------------------------------------] 100.00% 7.69MB/s 20.87MB/20.87MB 2.917s
Download successfully, 20.87MB, n/a, oss://1.zip --> /hy-tmp/1.zip, cost [2917], status [200], request id [0000019025B55BF49014D820B33A5DAE]
效果如下图所示:
其他终端指令如下:
解压zip文件: unzip -q xxx.zip
解压rar文件: 7z x xxx.rar
压缩文件夹: zip -r xxx.zip ./*
zip -q -r xxx.zip /home
删除文件夹: rm -r xxx
将xxx.zip下载到个人数据的根目录中: oss cp xxx.zip
注意:在实例文件数据中,压缩包可以直接右键“删除”,但是文件夹无法用这样的方式,会提醒“删除失败 Directory /hy-tmp/1 not empty”,因而要采用上文“删除文件夹”(rm -r xxx)的终端指令才可以
通过上文,读者即可实现通过“本地数据→个人数据→示例数据”的阶段性步骤,在实例用于存放代码和数据集的“/hy-tmp”文件夹中存放我们的文件。如下图所示,笔者在“/hy-tmp”文件夹中存放了名为“1”的个人文件夹。
注意:在hy-tmp中上传的代码应与本地代码一致,在本地PyChram打开的、需要训练的代码,即为应上传至hy-tmp的代码。
如,笔者本地训练代码文件夹为yolov5-7.0,即应将该本地文件夹压缩后,利用oss上传至个人数据,然后在实例中利用终端指令,将个人数据上传至实例文件夹中的hy-tmp,再解压缩,最终在hy-tmp中实现上传yolov5-7.0文件夹,同本地代码文件夹一样。
3. 云服务器与本地远程连接
利用云服务器进行模型训练最重要的步骤即为使实例与本地进行远程连接。
打开PyCharm,依次点击“file”、“setting”,进入如下界面,并依次选择“Python Interpreter”、“Add Interpreter”、“On SSH...”
即可进入如下界面
在“我的实例”中复制登陆指令
以笔者登录指令为例:
ssh -p 33792 root@i-2.gpushare.com
Host: i-2.gpushare.com
Port: 33792
Username: root
依次对应填入即可
下一步中,复制实例中的密码填入即可
点击“Next”,进入4/4
进入该页面后,依次点击“System Interpreter”、“Sync folders”、 “Remote Path”(这里不用管Local Path),找到hy-tmp文件夹,此时,hy-tmp文件夹中应有一个同读者本地代码一样的文件夹,选择该文件夹作为本地代码的映射
在PyCharm右下角,打开Terminal,选择SSH端口,选择我们刚刚配置的服务器的端口号,笔者为root@i-2.gpushare.com:33792