Bootstrap

『paddle』paddleseg 学习笔记:模型压缩


许多的神经网络模型需要巨大的计算开销和内存开销,严重阻碍了资源受限下的使用,通过模型压缩可以减少模型参数或者计算量,有效地降低计算和存储开销,便于部署再受限的硬件环境中。PaddleSeg 基于 PaddleSlim,集成了模型在线量化、模型裁剪等模型压缩能力。本文提供相关能力的使用教程。

一、安装 PaddleSlim

在进行模型量化或者裁剪前,请先安装相关依赖:

pip install paddleslim==2.0.0

二、模型量化

模型量化是通过将模型中的参数计算,从浮点计算转成低比特定点计算的技术,可以有效的降低模型计算强度、参数大小和内存消耗。PaddleSeg 基于 PaddleSlim 库,提供了模型在线量化的能力。

注意:对于小模型而言,由于模型本身运行速度已经非常快,加入量化操作反而可能导致模型运行速度变慢

step 1. 模型训练

我们可以通过 PaddleSeg 提供的脚本对模型进行训练,请确保完成了 PaddleSeg 的安装工作,并且位于 PaddleSeg 目录下,执行以下脚本:

export CUDA_VISIBLE_DEVICES=0 	# 设置1张可用的卡
# set CUDA_VISIBLE_DEVICES=0	# windows下请执行此命令
python train.py \
       --config configs/quick_start/bisenet_optic_disc_512x512_1k.yml \
       --do_eval \
       --use_vdl \
       --save_interval 500 \
       --save_dir output

step 2. 模型量化并再次训练

加载上一步训练完成的模型,启动量化脚本,并配置对应的参数。

参数名 用途 是否必选项 默认值
retraining_iters 量化完成后的重训练迭代数
;