网络模型在部署时会通过剪枝蒸馏等方式加快推理速度,模型蒸馏大概可以分为通道蒸馏、特征蒸馏和目标蒸馏。这里需要特别强调的是,蒸馏的student网络学习的是teacher的泛化能力,而不是过拟合训练数据。这篇博客会以pytorch代码为基础,介绍常用的模型蒸馏方法。
pytorch
神经网络训练量化(QAT)基本概念
QAT(Quantization Aware Training)量化感知训练是神经网络优化模型容量的重要方法,关系到模型精度和性能。pytorch对模型量化支持有三种方式:模型训练完毕后的动态量化、模型训练完毕后的静态量化、模型训练中开启量化QAT。这篇博客主要基于pytorh介绍QAT的基本概念。
使用OpCounter和flops-counter评估pytorch模型大小
在Pytorch中统计模型大小有一个非常好用的工具opcounters,opcounters用法也非常简单,这篇博客介绍opcounters用法。
Pytorch图像分类之ShuffleNet
在图像分类应用下,诞生了不少经典网络。ShuffleNet以速度快和便于移植而著称,这篇博客将简单介绍ShuffleNet,以及Pytorch下模型的训练、保存、微调、生成CaffeModle。
PyTorch:The “freeze_support()” line can be omitted if the program is not going to be frozen
在windows上运行pytorch时,稍不注意就会遇到freeze_support()的错误。解决这种错误只 … 阅读更多