使用趋动云GPU进行猫狗识别实践
- 1 创建项目
- 2 初始化开发环境
- 3 调试代码
- 4 提交离线任务
- 5 结果集存储与下载
使用趋动云提供的免费GPU,进行猫狗识别实践。
虽然例程里面提供的是基于tensorflow的,但是你也可以使用pytorch的代码
使用这个平台的一个优点就是方便,各种环境等等应有尽有;还有一些常见的数据集。
1 创建项目
1.进入趋动云用户工作台,在当前空间处选择注册时系统自动生成的空间(其他空间无免费算力);
2.填写项日名称及项目描述,如图二所示:
3.添加镜像:选择含TensorFlow2.X框架的官方镜像即可,如图三所示;
4.添加绑定数据集:选择公开数据集,DogsVsCats。
5.其余无需填写,点击右下角创建,系统弹出上传代码的提示,单击暂不上传,项目创建成功。
2 初始化开发环境
1,下载代码:
飞书文档连接:到第三章step1下载:
https://nuly9zxzf1.feishu.cn/docx/HOmzdmST9oc43gxjTF0c7PAAnnb
2,初始化开发环境:
图四:单击右上角的运行代码,进入初始化开发环境页;
图五:填写开发环境的初始化配置;
3 调试代码
开发环境创建好后,您可在开发环境中调试代码。
1.单击开发环境实例页右侧的JupyterLab工具。
2.默认进入/gemini/目录下,在右侧目录树中单击code文件夹,进入到/gemini/code/目录下。
3.单击顶部网页终端按钮,进入终端界面。
4.在网页终端运行如下代码
运行:
python $GEMINI_RUN/DogsVsCats.py --num_epochs 5 --data_dir $GEMINI_DATA_IN1/DogsVsCats/ --train_dir $GEMINI_DATA_OUT
系统返回一系列信息,直到返回test accuracy信息,如下所示,表明该模型测试结束,其识别猫狗的能力为
0.500000,即几乎无识别能力.
5.单击JupyterLab,切换回JupyterLab工具,分析/gemini/code/路径下的模型代码。
经排查,发现代码中没有打乱数据集进行训川练,导致模型没有训练成功。这是因为模型在一个batch.之中,只曰
能看到猫的类别和狗的类别,这样看不到另一个类别的信息,所以没有任何识别能力。
6.修改模型代码并保存。
a.双击/gemini/code/路径下的DogsVsCats.py,开始编辑该文件。
b.删除该文件中第44行的注释符号#。
c,保存
7.单击网页终端按钮,进入终端界面再次执行上述4中的命令进行识别能力的测试。
系统返回的测试结果如下所示,显然已经能达到85%能识别出猫狗了。
4 提交离线任务
当您已经完成本次调优,可参考如下步骤保存代码并使用当前版本代码提交训练任务。
1.单击调试页面右上角的提交训练任务。
2.在单框中选择镜像和代码版本。
a.选择代码版本:单击新建代码版本,并在右边框中填写代码版本名。
b.选择镜像:选择直接使用当前工作镜像。
3.单击确定,进入提交任务页面。参考如下说明配置任务基本信息。
a.配置说明,其余保持默认即可。
i.任务模型:单机任务;
ii.GPU选择:B1.2 xlarge【需选择2Gpu的配置】
iii.启动命令
执行代码中的DogsVsCats.py脚本启动训练,训练所需数据为
G
E
M
I
N
I
D
A
T
A
I
N
1
/
D
o
g
s
V
s
C
a
t
s
目录下的数据,训练结果保存在
GEMINI_DATA_IN1/DogsVsCats目录下的数据,训练结果保存在
GEMINIDATAIN1/DogsVsCats目录下的数据,训练结果保存在GEMINI_DATA_OUT目录下。执行该任务的启动命令如下:
python $GEMINI_RUN/DogsVsCats.py --num_epochs 5 --data_dir $GEMINI_DATA_IN1/DogsVsCats/ --train_dir $GEMINI_DATA_OUT
4.配置信息填写完成后,单击确定。
返回训练任务页面,在训练任务列表中查看该任务的状态,该任务大约5分钟即可训练完成。
·任务状态显示为成功则表示训练任务成功结束。
·任务状态为失败,可将鼠标悬置于失败字样上,查看失败原因。
5 结果集存储与下载
模型在经历了大规模数据的训练后,将具备相对精准的识别猫狗的能力,此时可下载模型并将模型部署到应用中。
趋动云平台提供了结果集存储与下载的功能,您在代码中设置的输出,都将被存储在结果集中。您可将结果集中的
模型文件导出为模型。
1.在左侧导航栏中选择结果,默认进入任务结果页面。
2.单击右上角的导出模型按钮,进入导出模型页面
3.单击创建,生成模型。
生成的模型将保存在平台中,您可将其公开性设置为公开,并将其分享给其他成员使用或进一步完善模型。