模型压缩
许多的神经网络模型需要巨大的计算开销和内存开销,严重阻碍了资源受限下的使用,通过模型压缩可以减少模型参数或者计算量,有效地降低计算和存储开销,便于部署再受限的硬件环境中。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 | 量化完成后的重训练迭代数 |