jjzjj

苞米面 Paddle 助手 介绍

小熊宝宝啊 2023-03-28 原文

苞米面 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

有关苞米面 Paddle 助手 介绍的更多相关文章

  1. Unity 热更新技术 | (三) Lua语言基本介绍及下载安装 - 2

    ?博客主页:https://xiaoy.blog.csdn.net?本文由呆呆敲代码的小Y原创,首发于CSDN??学习专栏推荐:Unity系统学习专栏?游戏制作专栏推荐:游戏制作?Unity实战100例专栏推荐:Unity实战100例教程?欢迎点赞?收藏⭐留言?如有错误敬请指正!?未来很长,值得我们全力奔赴更美好的生活✨------------------❤️分割线❤️-------------------------

  2. ruby - Hanami link_to 助手只呈现最后一个元素 - 2

    我是HanamiWorld的新人。我已经写了这段代码:moduleWeb::Views::HomeclassIndexincludeWeb::ViewincludeHanami::Helpers::HtmlHelperdeftitlehtml.headerdoh1'Testsearchengine',id:'title'hrdiv(id:'test')dolink_to('Home',"/",class:'mnu_orizontal')link_to('About',"/",class:'mnu_orizontal')endendendendend我在模板上调用了title方法。htm

  3. ruby-on-rails - 将 Rails 路由助手作为类方法添加到类中 - 2

    我如何将像“root_path”这样的Rails路由助手作为类方法添加到像my_model.rb这样的类中?所以我的课是这样的:ClassMyModeldefself.fooreturnself.root_pathendendMyModel.foo以上不起作用,因为ClassMyModel不响应root_path这是我所知道的:我可以使用includeRails.application.routes.url_helpers,但这只会将模块的方法添加为实例方法我试过扩展Rails.application.routes.url_helpers但它没用请随时给我上课:)

  4. ruby 私有(private)类方法助手 - 2

    您好,我正在尝试创建一个帮助程序,用于将ruby​​方法大量定义为私有(private)类方法。通常,可以通过使用private_class_method键工作将方法定义为私有(private)类方法。但我想创建一个以下样式的助手:classPersondefine_private_class_methodsdodefmethod_oneenddefmethod_twoendendend我计划通过以下方式动态定义它,但根本不起作用:classObjectdefself.define_private_class_methods&blockinstance_evaldoprivate&bl

  5. ruby-on-rails - RSpec 应用程序助手测试 : Undefined local variable or method `helper` - 2

    有一段时间这似乎是一个闪烁的错误,但现在它一直出现:当我在一个相当简单的ApplicationHelper规范上运行RSpec时,我得到以下错误:%rspec--backtrace1)ApplicationHelperrendersMarkdownfromplaintextFailure/Error:expect(helper.md(plaintext)).toeq("Header\n")NameError:undefinedlocalvariableormethod`helper'for##/Users/danielsh/.rvm/gems/ruby-2.1.1@project-st

  6. 【自动驾驶环境感知项目】——基于Paddle3D的点云障碍物检测 - 2

    文章目录1.自动驾驶实战:基于Paddle3D的点云障碍物检测1.1环境信息1.2准备点云数据1.3安装Paddle3D1.4模型训练1.5模型评估1.6模型导出1.7模型部署效果附录show_lidar_pred_on_image.py1.自动驾驶实战:基于Paddle3D的点云障碍物检测项目地址——自动驾驶实战:基于Paddle3D的点云障碍物检测课程地址——自动驾驶感知系统揭秘1.1环境信息硬件信息CPU:2核AI加速卡:v100总显存:16GB总内存:16GB总硬盘:100GB环境配置Python:3.7.4框架信息框架版本:PaddlePaddle2.4.0(项目默认框架版本为2.3

  7. H2数据库配置及相关使用方式一站式介绍(极为详细并整理官方文档) - 2

    目录H2数据库入门以及实际开发时的使用1.H2数据库的初识1.1H2数据库介绍1.2为什么要使用嵌入式数据库?1.3嵌入式数据库对比1.3.1性能对比1.4技术选型思考2.H2数据库实战2.1H2数据库下载搭建以及部署2.1.1H2数据库的下载2.1.2数据库启动2.1.2.1windows系统可以在bin目录下执行h2.bat2.1.2.2同理可以通过cmd直接使用命令进行启动:2.1.2.3启动后控制台页面:2.1.3spring整合H2数据库2.1.3.1引入依赖文件2.1.4数据库通过file模式实际保存数据的位置2.2H2数据库操作2.2.1Mysql兼容模式2.2.2Mysql模式

  8. jquery - 在 Rails 中从原型(prototype)切换到 jquery,助手呢? - 2

    我目前从prototype切换到jquery主要是为了支持简单的ajax文件上传。我使用:https://github.com/indirect/jquery-rails95%的javascript代码是由railshelper编写的,例如:-remote_function-render:updatedo|page|-page.replace_html'id',:partial=>'content'-page['form']['name']=something-page.visual_effect:highlight,'head_success'...我知道我必须为Jquery重写5%

  9. ruby - Sinatra 助手伪造请求 - 2

    总结在Sinatra内Web应用程序,如何向应用程序发出虚拟请求并以文本形式返回响应正文?例如,这些路线...get('/foo'){"foo"}get('/bar'){"#{spoof_request'/foo'}-bar"}...当使用Web浏览器请求“/bar”时,应产生响应“foo-bar”。动机我的应用程序有一个代表错误条目的页面,其中包含关于该错误条目的大量详细信息:错误出现在哪个版本中,它有多重要,与之关联的标签是什么,错误分配给了谁等等.用户可以在此页面上以交互方式编辑单个数据。使用我的AJAXFetchjQuery插件,JavaScript使用AJAX将页面的只读部分

  10. ruby-on-rails - "uninitialized constant"当包含测试助手模块时 - 2

    我在尝试将辅助模块包含到测试中时遇到未初始化的常量错误。我的rails测试目录中有以下文件functional>admin>school_controller_test.rbfunctional>controller_helper.rb类/模块主体如下:moduleControllerHelperdefcheck_sort_order(items,column,direction)...endendclassAdmin::SchoolsControllerTest当我运行它时,测试输出是:/.../.rvm/gems/ruby-1.9.2-p0/gems/rspec-core-2.3.

随机推荐