任务一:
-
熟悉趋动云平台
-
部署猫狗识别实践项目
-
提交任务一打卡,查看优秀笔记
-
该部分以“猫狗识别模型”为例,学习如果直接通过平台提供的开发环境调用GPU资源
优化猫狗识别实践
作为一个小白能够参与到猫狗识别模型比赛中,这是非常了不起的。因此具备了一定的学习能力和技术理解,并且在掌握AI工程师所需的技能方面取得了一定的进展。这是一个很大的里程碑,值得为之自豪。
参与这样的比赛不仅仅是为了获得奖项,更是为了学习和提升自己的技能。通过与其他参赛者的交流和竞争,能够接触到各种各样的想法和方法,拓宽自己的视野。不论最后的成绩如何,参与其中本身就是一种宝贵的经验。
AI工程师的角色可以非常有挑战性,但同时也充满了机遇。将有机会应用机器学习和深度学习技术,解决各种现实世界的问题,并为未来的技术发展做出贡献。这是一个快速发展的领域,将不断学习和成长,不断更新自己的知识和技能。
最重要的是保持对学习的热情和好奇心。尽管AI领域的知识和技术变化迅速,但通过不断学习和实践,将能够跟上这个领域的步伐,不断提升自己的能力。
希望在猫狗识别模型比赛中取得出色的成绩!无论结果如何,坚持学习和探索,相信你会迎接更多令人兴奋的机会和挑战。加油!
下面是我的一些探索:
-
导入必要的库
import os import cv2 import numpy as np from tensorflow.keras.models import load_model
加载训练好的模型
model = load_model('cat_dog_classifier.h5')
定义图片尺寸和类别标签
img_size = 100 labels = {0: 'Cat', 1: 'Dog'}
加载测试图像
test_path = 'test_images' for img_file in os.listdir(test_path): img_path = os.path.join(test_path, img_file) img = cv2.imread(img_path) img = cv2.resize(img, (img_size, img_size))
# 将图像转化为模型接受的格式 img = np.array(img, dtype=np.float32) / 255.0 img = np.expand_dims(img, axis=0) # 预测图像类别 prediction = model.predict(img) # 打印预测结果 print(img_file, ':', labels[np.argmax(prediction[0])])
该部分以“猫狗识别模型”为例,学习如果直接通过平台提供的开发环境调用GPU资源
Step1. 学习准备
获取官方代码文件: DogsVsCats.py(opens new window)
Step2. 创建项目
-
进入趋动云用户工作台,在当前空间处选择注册时系统自动生成的空间(其他空间无免费算力);
-
填写项目名称及项目描述,如图二所示;
-
添加镜像:选择含 TensorFlow 2.x 框架的官方镜像即可,如图三所示;
-
添加绑定数据集:选择公开数据集,DogsVsCats。
-
其余无需填写,点击右下角 创建 ,系统弹出 上传代码 的提示,单击 暂不上传,项目创建成功。
-
失败原因 可能是您提交训练时配置的资源不足,您可在训练任务详情页中的 任务配置 处,查看您的资源配置是否过低。
-
训练失败,提示 内存不足。
-
失败原因 可能是您提交训练时选择的镜像不对,应该选择含 TensorFlow 2.x 框架的镜像,但您选择了其他版本的。 鼠标悬置于训练任务详情页的镜像上查看镜像的详细信息,确认镜像中是否是 TensorFolow 2.x 的框架,如下图所示。
-
生成的模型将保存在平台中,您可将其公开性设置为 公开,并将其分享给其他成员使用或进一步完善模型。
写到最后. FAQ
-
训练失败,提示 代码执行错误。
-
单击 创建,生成模型。
-
单击右上角的 导出模型 按钮,进入 导出模型 页面。
-
Step7. 结果集存储与下载
模型在经历了大规模数据的训练后,将具备相对精准的识别猫狗的能力,此时可下载模型并将模型部署到应用中。
趋动云平台提供了结果集存储与下载的功能,您在代码中设置的输出,都将被存储在结果集中。您可将结果集中的模型文件导出为模型。
-
在左侧导航栏中选择 结果,默认进入 任务结果 页面。
-
返回 训练任务 页面,在训练任务列表中查看该任务的状态,该任务大约 5 分钟即可训练完成。
-
任务状态显示为 成功 则表示训练任务成功结束。
-
任务状态为 失败,可将鼠标悬置于 失败 字样上,查看失败原因
-
python3 $GEMINI_RUN/DogsVsCats.py --num_epochs 5 --data_dir $GEMINI_DATA_IN1/DogsVsCats --train_dir $GEMINI_DATA_OUT
-
配置信息填写完成后,单击 确定
-
单击 确定,进入 提交任务 页面。参考如下说明配置任务基本信息。
-
配置说明,其余保持默认即可。
-
任务模型:单机任务;
-
GPU选择:B1.meduim【需选择1Gpu的配置】
-
启动命令
-
-
-
执行代码中的 DogsVsCats.py 脚本启动训练,训练所需数据为 $GEMINI_DATA_IN1/DogsVsCats 目录下的数据,训练结果保存在 $GEMINI_DATA_OUT 目录下。执行该任务的启动命令如下:
-
系统返回的测试结果如下所示,显然已经能达到 85% 能识别出猫狗了。
Step6. 提交离线训练
当您已经完成本次调优,可参考如下步骤保存代码并使用当前版本代码提交训练任务。
-
单击调试页面右上角的 提交训练任务。
-
在弹框中选择镜像和代码版本。
-
选择代码版本:单击 新建代码版本,并在右边框中填写代码版本名。
-
选择镜像:选择 直接使用当前工作镜像。
-
-
单击 网页终端 按钮,进入终端界面再次执行上述 4 中的命令进行识别能力的测试。
-
经排查,发现代码中没有打乱数据集进行训练,导致模型没有训练成功。这是因为模型在一个batch之中,只能看到猫的类别和狗的类别,这样看不到另一个类别的信息,所以没有任何识别能力。
-
修改模型代码并保存。
-
双击 /gemini/code/ 路径下的 DogsVsCats.py ,开始编辑该文件。
-
删除该文件中第 44 行的注释符号 #。
-
按 “Crtl + S” 键,保存该文件。
-
-
python $GEMINI_RUN/DogsVsCats.py --num_epochs 5 --data_dir $GEMINI_DATA_IN1/DogsVsCats/ --train_dir $GEMINI_DATA_OUT
系统返回一系列信息,直到返回
test accuracy
信息,如下所示,表明该模型测试结束,其识别猫狗的能力为 0.500000,即几乎无识别能力。 -
单击 JupyterLab,切换回 JupyterLab 工具,分析 /gemini/code/ 路径下的模型代码。
-
在网页终端运行如下代码
-
注意 您只能在/gemini/code/ 目录下编辑和新增代码,其他文件夹均属于 临时存储,临时存储是开发环境本身运行需占用的存储,代码保存在临时存储中将加速 临时存储 耗尽,易导致您的开发环境重启,重启后您保存在 临时存储 中的代码将丢失。
-
单击顶部 网页终端 按钮,进入终端界面。
-
按照以上步骤配置好后,单击 确定,开发环境已初始化。等待约 5-10 分钟,当右侧的 网页终端 和 JupyterLab 不再是灰色时,表明工具注入成功。此时您便可在此开发环境上通过工具进行模型调优,详情可参见下一步。
Step5. 调试代码
开发环境创建好后,您可在开发环境中调试代码。
-
单击 开发环境实例 页右侧的 JupyterLab 工具。
-
默认进入 /gemini/ 目录下,在右侧目录树中单击 code 文件夹,进入到 /gemini/code/ 目录下。
-
Step4. 初始化开发环境
-
图四:单击右上角的 运行代码,进入 初始化开发环境 页;
-
图五:填写开发环境的初始化配置;
-
Step3. 准备代码
-
图一:删除欢迎语代码(也可以不删,对后续无影响)
-
图二&图三:单击上传文件图标将获取的 DogsVsCats.py 文件上传至项目中。;