苞米面 Paddle 助手

  • 自己用的百度飞桨 Paddle,PaddleX 项目模板和小工具。My Paddle PaddleX project templates.

适用系统

  • 一些脚本使用 shell 编写,所以目前适用 Linux 和 百度 AI Studio

如何安装

  • 从 gitee 获取源码
git clone git@gitee.com:cnhemiya/bmm-paddle-helper.git
  • 从 github 获取源码
git clone git@github.com:cnhemiya/bmm-paddle-helper.git

程序参数

  • 项目生成器 mkbmmph.py
cd bmm-paddle-helper
python3 tools/mkbmmph.py -h
usage: mkbmmph.py [-h] [--project] [--to_dir]

苞米面 Paddle 项目生成器

optional arguments:
  -h, --help  show this help message and exit
  --project   项目类型,可选:paddlex_cls, paddlex_det, paddlex_seg
  --to_dir    生成的项目模板保存目录,默认 './run'
  • 生成不同的模板
cd bmm-paddle-helper
# PaddleX 图像分类
python3 tools/mkbmmph.py --project paddlex_cls --to_dir ./run
# PaddleX 目标检测
python3 tools/mkbmmph.py --project paddlex_det --to_dir ./run
# PaddleX 图像分割
python3 tools/mkbmmph.py --project paddlex_seg --to_dir ./run
  • Linux 小技巧

可以使用软连接把 mkbmmph.py 连接到 $HOME/.local/bin 目录,方便使用。

使用示例

生成模板

  • 生成 PaddleX 目标检测项目模板
cd bmm-paddle-helper
python3 tools/mkbmmph.py --project paddlex_det --to_dir ./run

模板目录结构

run
├── aismain.ipynb
├── check_data.sh
├── get_data.sh
├── infer.py
├── mod
│   ├── args.py
│   ├── config.py
│   ├── __init__.py
│   ├── pdxconfig.py
│   ├── report.py
│   └── utils.py
├── onekey.sh
├── onetasks.sh
├── paddlex_det_doc.md
├── prune.py
├── quant.py
└── train.py

文件说明

文件 说明
aismain.ipynb Jupyter notebook 适用百度 AI Studio,放到项目根目录,或者根据目录修改
check_data.sh 检查数据
get_data.sh 获取数据
infer.py 预测程序
mod python 模块
onekey.sh 一键获取数据脚本模板,需要按照自己需求,修改路径
onetasks.sh 一键训练,量化脚本模板,需要按照自己需求,修改参数
paddlex_det_doc.md 参数说明
prune.py 裁剪程序
quant.py 量化程序
train.py 训练程序

aismain.ipynb 目录结构示例

├── aismain.ipynb
├── data
└── work
    └── run

训练示例

  • train.py 加 -h 查看参数
python3 run/train.py 
    --dataset ./dataset/road_fighter_car 
    --epochs 32 
    --batch_size 1 
    --learning_rate 0.01 
    --model PicoDet 
    --backbone ESNet_m 
    --pretrain_weights ""

裁剪示例

  • prune.py 加 -h 查看参数
python3 run/prune.py 
    --dataset ./dataset/road_fighter_car 
    --epochs 16 
    --batch_size 1 
    --learning_rate 0.001 
    --model_dir ./output/best_model 
    --save_dir ./output/prune 
    --pruned_flops 0.2

在线量化示例

  • quant.py 加 -h 查看参数
python3 run/quant.py 
    --dataset ./dataset/road_fighter_car 
    --epochs 16 
    --batch_size 1 
    --learning_rate 0.001 
    --model_dir ./output/best_model 
    --save_dir ./output/quant

需要修改什么

aismain.ipynb

  • 放到百度 AI Studio 项目根目录,或者根据目录修改

check_data.sh

  • dataset_dir:需要检查的文件所在的目录
  • data_files:需要检查的文件

onekey.sh

  • app_dir:程序目录,如果不是 run,根据自己的设定修改
  • zip_file:数据压缩包
  • ais_dir:aistudio 数据目录
  • sub_data_dir:解压后的数据目录
  • data_dir:数据目录

onetasks.sh

  • MODEL:模型名称
  • BACKBONE:主干模型
  • DATASET:数据集目录
  • BASE_SAVE_DIR:保存的目录
  • FIXED_INPUT_SHAPE:导出模型的输入大小
  • APP_DIR:程序目录
  • PYTHON_APP:python 程序

transforms

  • 可以自己修改 train.py prune.py quant.py 的 transforms 非必须。

dataset

  • 可以自己修改 train.py prune.py quant.py 的 dataset 非必须。

开源协议

MulanPSL-2.0

项目地址

GITEE    https://gitee.com/cnhemiya/bmm-paddle-helper

GITHUB    https://github.com/cnhemiya/bmm-paddle-helper

AISTUDIO  https://aistudio.baidu.com/aistudio/projectdetail/4260357

内容来源于网络如有侵权请私信删除

文章来源: 博客园

原文链接: https://www.cnblogs.com/cnhemiya/p/16404630.html

你还没有登录,请先登录注册
  • 还没有人评论,欢迎说说您的想法!