资讯 社区 文档
技术能力
语音技术
文字识别
人脸与人体
图像技术
语言与知识
视频技术

自定义代码 | 基于 FashionPedia 开源数据集训练部署目标检测模型

推荐项目

使用星河社区命令行工具(AI Studio CLI)高效进行模型训练

点击「fork」或「运行一下」,上手实操使用命令行工具

快速开始

星河社区命令行工具(AI Studio CLI) 是基于aistudio_hub sdk 建立的管理工具,借助此工具,用户可以不受开发环境限制,方便快捷地提交模型训练任务,并通过模型产线完成日志监控、效果评估与在线部署。

用户认证

首次使用 AI Studio CLI 提交与管理任务,需要安装 aistudio-sdk 库,并通过 访问令牌 完成身份认证。

安装方式:

$ pip install --upgrade aistudio-sdk

认证方式:

$ aistudio config --token <yourToken>

代码准备

本教程基于开源项目 PaddleDetection,自定义代码包命名为 code,仅包含三个文件(run.sh、eval.sh、config.yml),文件可从项目 使用星河社区命令行工具(AI Studio CLI)高效进行模型训练 中获得,其余作业相关文件在任务环境中通过 git clonepip install 的方式获取。数据集选择 MiniFashionPedia(dataset_id=264391),数据包需要解压缩后放到 ./data 目录下。

run.sh 为例,我们在执行脚本中分别完成了:处理数据集、拉取PaddleDetection开源代码、安装环境依赖,最后启动了单卡训练。如需启动多卡训练,可以取消多卡训练的注释,并在 CLI 中设置--gpus 为 4。

######处理数据集######
tar -xf ./data/data264391/MiniFashionPedia.tar -C ./data
rm -rf ./data/data264391/MiniFashionPedia.tar

######拉取PaddleDetection开源代码,安装环境依赖######
git clone https://gitee.com/paddlepaddle/PaddleDetection
pip install -r ./PaddleDetection/requirements.txt -Uq

######启动单卡训练######
export CUDA_VISIBLE_DEVICES=0
python ./PaddleDetection/tools/train.py -c config.yml --eval

######启动多卡训练######
# export CUDA_VISIBLE_DEVICES=0,1,2,3
# python -m paddle.distributed.launch --gpus 0,1,2,3 ./PaddleDetection/tools/train.py -c config.yml --fleet --eval

因此,在代码包、数据集和相关开源项目拉取完成后,我们会获得如下的文件目录结构:

/home/aistudio               # 任务环境的根目录
├── data                     # 挂载数据的存储目录
│   ├── data264391           # 空文件夹
│   └── MiniFashionPedia     # MiniFashionPedia数据集       
├── output                   # 产出文件的保存路径,持久化存储
│   ├── log                  # 训练日志
│   └── ...
├── PaddleDetection          # 开源项目PaddleDetection代码仓库
│   ├── requirements.txt     # 环境依赖
│   ├── tools/train.py       # 模型训练执行文件
│   └── ...
├── run.sh                   # 可训练执行脚本
├── eval.sh                  # 可评估执行脚本
└── config.yml               # 模型训练配置文件

请注意,仅 /home/aistudio/output 目录下的文件会被持久化保存,训练中的重要文件请设置正确的保存路径,以免丢失。

任务提交

AI Studio CLI 的命令行结构如下:

$ aistudio submit job [flags]

参数详情:

参数 是否必填 功能介绍 类型 默认值
--name, -n 产线名称:最多64个字符,支持中英文、数字、下划线、中划线、点,且符号不能在首尾 String
--path, -p 任务代码本地路径(文件夹):文件夹内的文件总体积不超过50MB String
--cmd, -c 任务代码启动命令,建议使用 ' ' 包裹 String
--env, -e 飞桨框架版本:paddle2.6_py3.10;paddle2.5_py3.10;paddle2.4_py3.7 String paddle2.6_py3.10
--device, -d 硬件资源型号:当前仅支持 v100 String v100
--gpus, -g gpu数量:1,4,8 Int 1
--payment, -pay 计费方式:acoin-A币支付;coupon-算力点支付 String acoin
--mount_dataset, -m 数据集挂载:填写 {dataset_id},支持主站数据集挂载到任务盘(/home/aistudio/data),以便用户在任务中使用。单个任务最多挂载3个数据集 String none

以本任务为例,我们要发起一个单卡训练任务,取名为 ppyoloe_MiniFashionPedia_gpu1,使用算力点支付,因此 CLI 命令为:

$ aistudio submit job \
--name ppyoloe_MiniFashionPedia_gpu1 \
--path ./code_gpu1 \
--cmd 'sh run.sh' \
--payment coupon \
--gpus 1 \
--mount_dataset 264391

如果希望启动一个四卡训练任务,取名为 ppyoloe_MiniFashionPedia_gpu4,使用A币支付(多卡任务仅支持A币支付),则 CLI 命令为:

$ aistudio submit job \
--name ppyoloe_MiniFashionPedia_gpu4 \
--path ./code_gpus4 \
--cmd 'sh run.sh' \
--payment acoin \
--gpus 4 \
--mount_dataset 264391

至此,我们就实现了一行 CLI 命令完成模型训练任务。

前往自定义产线查看训练日志

根据 CLI 返回的 url,可以跳转到自定义产线详情页查看任务运行情况,日志实时刷新。

此外,也可以通过 AI Studio 一级侧导航栏的「模型」板块,进入模型产线列表页,选择对应的自定义产线查看和管理。

输出文件查询与模型评估

运行完成状态(运行成功/运行失败/已停止)的产线支持查看所有输出到 ./output 目录下的文件,以列表形式展示,支持单文件下载。

与此同时,可以调用 ./output 目录下的文件进行模型评估,评估脚本需要用户自己上传。在示例文件包中,已包含了评估脚本,只需要更改启动命令为 sh eval.sh 即可对 ./output/config/best_model.pdparams 文件进行评估。

更多产品信息详见:https://ai.baidu.com/ai-doc/AISTUDIO/lluckgp2n

上一篇
零代码产线 | 基于 FashionPedia 开源数据集训练部署目标检测模型
下一篇
零代码产线 | 产业实践:圆珠笔瑕疵检测