Error[8]: Trying to access array offset on value of type null, File: /www/wwwroot/outofmemory.cn/tmp/model_misc.func.php, Line: 1274
File: /www/wwwroot/outofmemory.cn/tmp/route_read.php, Line: 190, wqo_prev_next_read(918996)
File: /www/wwwroot/outofmemory.cn/tmp/index.inc.php, Line: 166, include(/www/wwwroot/outofmemory.cn/tmp/route_read.php)
File: /www/wwwroot/outofmemory.cn/index.php, Line: 30, include(/www/wwwroot/outofmemory.cn/tmp/index.inc.php)
Error[8]: Trying to access array offset on value of type null, File: /www/wwwroot/outofmemory.cn/tmp/model_misc.func.php, Line: 1275
File: /www/wwwroot/outofmemory.cn/tmp/route_read.php, Line: 190, wqo_prev_next_read(918996)
File: /www/wwwroot/outofmemory.cn/tmp/index.inc.php, Line: 166, include(/www/wwwroot/outofmemory.cn/tmp/route_read.php)
File: /www/wwwroot/outofmemory.cn/index.php, Line: 30, include(/www/wwwroot/outofmemory.cn/tmp/index.inc.php)
【模型部署】NNI:剪枝和量化_python_内存溢出

【模型部署】NNI:剪枝和量化

【模型部署】NNI:剪枝和量化,第1张

一 简介 1 剪枝和量化

将神经网络部署在计算资源匮乏或具有严格延迟要求的设备上的时候,需要先对模型进行压缩处理。模型压缩后,模型大小会变小,在不会显著降低模型性能的情况下,能够加速模型的训练/推理。

模型压缩技术分类:剪枝(Pruning)和量化(Quantization)。

(1) 剪枝方法探索模型权重中的冗余, 并尝试删除/修剪冗余和非关键的权重。 

(2) 量化是指通过减少权重表示或激活所需的比特数来压缩模型。

2 NNI

NNI (Neural Network Intelligence) 是一个轻量但强大的自动机器学习工具包,能帮助用户自动地进行特征工程、神经网络架构搜索、超参调优以及模型压缩。

(1)统一的接口来支持 TensorFlow 和 PyTorch。

(2)内置许多流行的剪枝和量化算法。

(3)利用最先进的策略和NNI的自动调整能力,来自动化模型剪枝和量化过程。

(4)加速模型,使其有更低的推理延迟。

(5)提供友好和易于使用的压缩工具,让用户深入到压缩过程和结果。

压缩流程:

注意: 

NNI的pruner或quantizer并不能改变网络结构,只能模拟压缩的效果。 真正能够压缩模型、改变网络结构、降低推理延迟的是NNI的加速工具。

为了获得一个真正的压缩的模型,用户需要执行剪枝加速or量化加速。

PyTorch和TensorFlow的接口都是统一的。目前支持PyTorch版本。

NNI修剪模型:


二 安装NNI

NNI 依赖于 Python 3.7 或以上版本。

使用 pip 进行安装:

pip install nni

升级已安装的旧版本 NNI:

pip install --latest nni

检查nni版本:

nnictl --version

报错😱:bash: nnictl: command not found

解决方法💉: 将 pip 安装的可执行文件添加到 PATH 环境变量。

命令如下👇:

echo 'export PATH=${PATH}:${HOME}/.local/bin' >> ~/.bashrc
source ~/.bashrc

安装额外依赖:

安装指定 nni[算法名] 依赖,举例:

pip install nni[DNGO]

一次性安装所有可选依赖:

pip install nni[all]

注意:SMAC 算法依赖于 swig3,在 Ubuntu 系统中需要手动进行降级:

sudo apt install swig3.0
sudo rm /usr/bin/swig
sudo ln -s swig3.0 /usr/bin/swig


三 剪枝

模型剪枝Quickstart:

https://nni.readthedocs.io/zh/stable/tutorials/pruning_quick_start_mnist.html


四 量化

模型量化Quickstart:

https://nni.readthedocs.io/zh/stable/tutorials/quantization_quick_start_mnist.html


参考:https://nni.readthedocs.io/zh/stable/compression/overview.html

仅作为学习用途,如有侵权,请联系作者删除。

欢迎分享,转载请注明来源:内存溢出

原文地址: https://outofmemory.cn/langs/918996.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫

发表评论

登录后才能评论

评论列表(0条)

保存