bmm-paddle-helper

苞米面 Paddle 助手
授权协议 Mulan
开发语言 Python
所属分类 神经网络/人工智能、 机器学习/深度学习
软件类型 开源软件
地区 国产
投 递 者 易宣
操作系统 跨平台
开源组织
适用人群 未知
 软件概览

苞米面 Paddle 助手是一个百度飞桨 Paddle、PaddleX 项目模板和小工具。

适用系统

  • 一些脚本使用 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

程序参数

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

训练示例

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 ""

裁剪示例

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

在线量化示例

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

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

[点击并拖拽以移动]

  • mm-bmm-matmul的区别 三者都是用于计算torch的计算方法! torch.mm 用于计算2D矩阵tensor的叉积。(注意必须是2D的tensor才能用于mm计算) x = torch.tensor([[1,2,3]]) y = torch.tensor([[1,2,3,4], [5,6,7,8], [9,10,1

  • PyTorch API名称 对应Paddle API torch.set_default_dtype paddle.set_default_dtype torch.get_default_dtype paddle.get_default_dtype torch.numel paddle.numel torch.set_printoptions paddle.set_printoptions tor

  • 官方文档地址:https://pytorch.org/docs/stable/generated/torch.bmm.html?highlight=bmm#torch.bmm 形式:torch.bmm(input, mat2, *, out=None) → Tensor 作用:矩阵的批量相乘,支持TensorFloat32数据的操作。 要求:input 和 mat2 必须是 3-D 张量,每个张量

  • 小批量乘法运算 torch.bmm() 假设第⼀个⼩批量中包含n个形状为[a, b]的矩阵 ,第⼆个⼩批量中包含n个形状为[b, c] 的矩阵 。这两个⼩批量的矩阵乘法输出为n个形状为[a, c] 的矩阵 。因此,给定两个形状分别为( n ,a ,b )和(n ,b ,c )的 Tensor ,⼩批量乘法输出的形状为(n ,a ,c )

 相关资料
  • Paddle Lite为Paddle-Mobile的升级版,定位支持包括手机移动端在内更多场景的轻量化高效预测,支持更广泛的硬件和平台,是一个高性能、轻量级的深度学习预测引擎。在保持和PaddlePaddle无缝对接外,也兼容支持其他训练框架产出的模型。 ## CPU版本安装命令pip install -f https://paddlepaddle.org.cn/pip/oschina/cpu p

  • Paddle Serving 是 PaddlePaddle 的在线预估服务框架,能够帮助开发者轻松实现从移动端、服务器端调用深度学习模型的远程预测服务。当前 Paddle Serving 以支持 PaddlePaddle 训练的模型为主,可以与 Paddle 训练框架联合使用,快速部署预估服务。 ## CPU版本安装命令pip install -f https://paddlepaddle.org

  • 前段时间忙着PR,实在是没空写面经了。以至于之前百度面的也快忘的差不多了…… 算是我暑期实习开始预热吧。 一面: 自我介绍 问商汤实习经历 介绍大模型量化流程 问使用的量化方案(w8a8) 问算子融合方式 (手搓…) 问在商汤做的QAT工作 问了些量化的基础知识 问在线量化流程 问pr的ort算子实现流程 做题layernorm(c++/cuda) 二面: 自我介绍 问c++八股 数组&链

  • 本章讨论Bootstrap中可能派上用场的一些帮助程序类。 关闭图标 使用通用关闭图标来消除模态和警报等内容。 使用close类获取关闭图标。 <p>Close Icon Example <button type = "button" class = "close" aria-hidden = "true"> × </button> </p> Carets 使用插入符号来

  • Url 帮助类提供一系列的静态方法来帮助管理 URL。 获得通用 URL(Getting Common URLs) 有两种获取通用 URLS 的方法 :当前请求的 home URL 和 base URL 。 为了获取 home URL ,使用如下代码: $relativeHomeUrl = Url::home(); $absoluteHomeUrl = Url::home(true); $http

  • 您可以通过在帮助程序名称后指定将多个参数传递给帮助程序。 语法 (Syntax) export default Ember.Helper.helper(function(params) { //code here } 例子 (Example) 下面给出的示例将多个参数传递给帮助程序。 创建一个新助手作为helperarguments并添加以下代码 - import Ember from '