【picodet快速使用流程梳理】


前言

picodet快速使用流程梳理


一、安装

1. 环境要求:

PaddlePaddle 2.2
OS 64 bit
Python >=3.8,64 bit
pip/pip3(9.0.1+), 64 bit
CUDA >= 10.1
cuDNN >= 7.6

2. conda 环境

conda create -n  picodet python==3.8
conda activate  picodet

3.安装PadllePadlle

# CUDA10.1
python -m pip install paddlepaddle-gpu==2.2.0.post101 -f https://www.paddlepaddle.org.cn/whl/linux/mkl/avx/stable.html

验证是否成功安装

# check
python
>> import paddle
>> paddle.utils.run_check()

# confirm the paddle's version
python
>> import paddle
>> print(paddle.__version__)

使用多GPU训练( multi-GPU),需要先安装 NCCL
link

4. 安装PaddleDetection

# Clone PaddleDetection repository
cd <path/to/clone/PaddleDetection>
git clone https://github.com/PaddlePaddle/PaddleDetection.git

# Install other dependencies
cd PaddleDetection
pip install -r requirements.txt

# Compile and install paddledet
python setup.py install

测试安装是否成功

python ppdet/modeling/tests/test_architectures.py

安装成功输出

.......
----------------------------------------------------------------------
Ran 7 tests in 12.816s
OK

5.推理测试

# Predict an image by GPU
export CUDA_VISIBLE_DEVICES=0
python tools/infer.py -c configs/ppyolo/ppyolo_r50vd_dcn_1x_coco.yml -o use_gpu=true weights=https://paddledet.bj.bcebos.com/models/ppyolo_r50vd_dcn_1x_coco.pdparams --infer_img=demo/000000014439.jpg

二、训练和评估

1.单卡训练

# training on single-GPU
export CUDA_VISIBLE_DEVICES=0
python tools/train.py -c configs/picodet/picodet_s_320_coco_lcnet.yml --eval

2.多卡训练

# training on multi-GPU
export CUDA_VISIBLE_DEVICES=0,1,2,3
python -m paddle.distributed.launch --gpus 0,1,2,3 tools/train.py -c configs/picodet/picodet_s_320_coco_lcnet.yml --eval

3.评估

python tools/eval.py -c configs/picodet/picodet_s_320_coco_lcnet.yml \
              -o weights=https://paddledet.bj.bcebos.com/models/picodet_s_320_coco_lcnet.pdparams

4.测试

python tools/infer.py -c configs/picodet/picodet_s_320_coco_lcnet.yml \
              -o weights=https://paddledet.bj.bcebos.com/models/picodet_s_320_coco_lcnet.pdparams

三、模型导出及转换

1. 导出模型

cd PaddleDetection
python tools/export_model.py -c configs/picodet/picodet_s_320_coco_lcnet.yml \
              -o weights=https://paddledet.bj.bcebos.com/models/picodet_s_320_coco_lcnet.pdparams \
              --output_dir=output_inference
  • 如无需导出后处理,请指定:-o export.benchmark=True(如果-o已出现过,此处删掉-o)或者手动修改runtime.yml 中相应字段。
  • 如无需导出NMS,请指定:-o export.nms=False或者手动修改runtime.yml 中相应字段。 许多导出至ONNX场景只支持单输入及固定shape输出,所以如果导出至ONNX,推荐不导出NMS。

2. 转换为Paddle Lite格式

  • 安装Paddlelite>=2.10:
pip install paddlelite
  • 转换模型至Paddle Lite格式:
# FP32
paddle_lite_opt --model_dir=output_inference/picodet_s_320_coco_lcnet --valid_targets=arm --optimize_out=picodet_s_320_coco_fp32
# FP16
paddle_lite_opt --model_dir=output_inference/picodet_s_320_coco_lcnet --valid_targets=arm --optimize_out=picodet_s_320_coco_fp16 --enable_fp16=true

3. 转换为ONNX格式

  • 安装Paddle2ONNX >= 0.7 并且 ONNX > 1.10.1
pip install onnx
pip install paddle2onnx==0.9.2
  • 转换模型
paddle2onnx --model_dir output_inference/picodet_s_320_coco_lcnet/ \
            --model_filename model.pdmodel  \
            --params_filename model.pdiparams \
            --opset_version 11 \
            --save_file picodet_s_320_coco.onnx
  • 简化模型:使用onnx-simplifier库来简化ONNX模型。
    • 安装 onnxsim >= 0.4.1:
pip install onnxsim
    • 简化ONNX模型:
onnxsim picodet_s_320_coco.onnx picodet_s_processed.onnx

总结

简单梳理流程。

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值