基于pytorch量化感知训练(mnist分类)--浮点训练vs多bit后量化vs多bit量化感知训练效果对比

Posted 踟蹰横渡口,彳亍上滩舟。

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了基于pytorch量化感知训练(mnist分类)--浮点训练vs多bit后量化vs多bit量化感知训练效果对比相关的知识,希望对你有一定的参考价值。

基于pytorch量化感知训练–浮点训练vs多bit后量化vs多bit量化感知训练效果对比

代码下载地址:下载地址
灰色线是量化训练,橙色线是后训练量化,可以看到,在 bit = 2、3 的时候,量化训练能带来很明显的提升。

实验分析

在 bit = 1 的时候,我发现量化训练回传的梯度为 0,训练基本失败了。这是因为 bit = 1 的时候,整个网络已经退化成一个二值网络了,而低比特量化训练本身不是一件容易的事情,虽然我们前面用 STE 解决了梯度的问题,但由于低比特会使得网络的信息损失巨大,因此通常的训练方式很难起到作用。

另外,量化训练本身存在很多 trick,在这个实验中我发现,学习率对结果的影响非常显著,尤其是低比特量化的时候,学习

以上是关于基于pytorch量化感知训练(mnist分类)--浮点训练vs多bit后量化vs多bit量化感知训练效果对比的主要内容,如果未能解决你的问题,请参考以下文章

pytorch量化感知训练(QAT)示例---ResNet

适配PyTorch FX,OneFlow让量化感知训练更简单

图像分类基于PyTorch搭建LSTM实现MNIST手写数字体识别(单向LSTM,附完整代码和数据集)

用pytorch实现多层感知机(MLP)(全连接神经网络FC)分类MNIST手写数字体的识别

基于OneFlow实现量化感知训练

动手深度学习10- pytorch多层感知机从零实现