Comments (5)
客气啦。我理解的量化分为以下步骤, 浮点模型--> 浮点模型clip --> 量化quantize(此处为0-255整数或-128-127)--> 解量化dequantize(此处为量化后的浮点数,但最多只有2^n种浮点表征,即有限浮点数集合)。你所描述的quant_model是dequantize后的模型,所以是浮点。train用dequantize的浮点来模拟inference时的整数,具体你可以读一下这两篇论文。
Quantization and Training of Neural Networks for Efficient Integer-Arithmetic-Only Inference
Quantizing deep convolutional networks for efficient inference: A whitepaper
from pytorch_quantization.
大佬你好,最近趁着假期在学习大佬的代码收获颇丰,已向周围小伙伴推荐了大佬的代码。但是关于量化过程中我有一点想不明白,训练得到quant_model后(也就是大佬的模型)。
:1、我在模型部署阶段,是需要把里面的卷积权值小数乘以255变成整数吗?如果是的话,卷积后的特征图也也是整数,但时当特征图经过BN层时,BN层的值全是浮点小数怎么和特征图进行定点运算呢?即前向推断过程中,即Conv->BN->激活函数,这一样过程,数据是咋流动的呢?
2、BN层融合这儿,量化训练后,如果把卷积层和BN层融合,变为新的卷积层后,那么这个卷积层的参数便不再是定点小数了,乘以尺度因子后,它也变不回int型的数吖?
from pytorch_quantization.
大佬你好,最近趁着假期在学习大佬的代码收获颇丰,已向周围小伙伴推荐了大佬的代码。但是关于量化过程中我有一点想不明白,训练得到quant_model后(也就是大佬的模型)。
:1、我在模型部署阶段,是需要把里面的卷积权值小数乘以255变成整数吗?如果是的话,卷积后的特征图也也是整数,但时当特征图经过BN层时,BN层的值全是浮点小数怎么和特征图进行定点运算呢?即前向推断过程中,即Conv->BN->激活函数,这一样过程,数据是咋流动的呢?
2、BN层融合这儿,量化训练后,如果把卷积层和BN层融合,变为新的卷积层后,那么这个卷积层的参数便不再是定点小数了,乘以尺度因子后,它也变不回int型的数吖?
@jingdonglin @Jzz24 大哥, 你这问题解决了吗?
from pytorch_quantization.
大佬你好,最近趁着假期在学习大佬的代码收获颇丰,已向周围小伙伴推荐了大佬的代码。但是关于量化过程中我有一点想不明白,训练得到quant_model后(也就是大佬的模型)。
:1、我在模型部署阶段,是需要把里面的卷积权值小数乘以255变成整数吗?如果是的话,卷积后的特征图也也是整数,但时当特征图经过BN层时,BN层的值全是浮点小数怎么和特征图进行定点运算呢?即前向推断过程中,即Conv->BN->激活函数,这一样过程,数据是咋流动的呢?
2、BN层融合这儿,量化训练后,如果把卷积层和BN层融合,变为新的卷积层后,那么这个卷积层的参数便不再是定点小数了,乘以尺度因子后,它也变不回int型的数吖?@jingdonglin @Jzz24 大哥, 你这问题解决了吗?
整个量化的流程可以参照google的量化白皮书,现在的量化框架都是遵循那一套流程。首先拿到fp模型,然后融合bn,然后进行量化。无论离线量化还是finetune量化,都是先融合bn,再量化,我这个git的代码bn处理的不规范
from pytorch_quantization.
大佬你好,最近趁着假期在学习大佬的代码收获颇丰,已向周围小伙伴推荐了大佬的代码。但是关于量化过程中我有一点想不明白,训练得到quant_model后(也就是大佬的模型)。
:1、我在模型部署阶段,是需要把里面的卷积权值小数乘以255变成整数吗?如果是的话,卷积后的特征图也也是整数,但时当特征图经过BN层时,BN层的值全是浮点小数怎么和特征图进行定点运算呢?即前向推断过程中,即Conv->BN->激活函数,这一样过程,数据是咋流动的呢?
2、BN层融合这儿,量化训练后,如果把卷积层和BN层融合,变为新的卷积层后,那么这个卷积层的参数便不再是定点小数了,乘以尺度因子后,它也变不回int型的数吖?@jingdonglin @Jzz24 大哥, 你这问题解决了吗?
整个量化的流程可以参照google的量化白皮书,现在的量化框架都是遵循那一套流程。首先拿到fp模型,然后融合bn,然后进行量化。无论离线量化还是finetune量化,都是先融合bn,再量化,我这个git的代码bn处理的不规范
dorefa的量化方法按您说的流程量化我理解是这样: 先正常训练个fp32模型 -->merge bn --> 使用dorefa微调训练不带bn的量化模型. 您是这个意思吗? google白皮书我可能看的不仔细, 这种方式我再试试.
from pytorch_quantization.
Related Issues (8)
- 量化后的模型大小 HOT 1
- Not same with the Paper HOT 3
- 支持转换成onnx吗? HOT 1
- 大佬,想请教一些量化方面的问题,可以留个联系方式吗?^.^ HOT 1
- ResNet50 在ImageNet数据集 HOT 4
- 你好,请问一下文中的梯度量化在哪里实现的呀,在代码中没有看到 HOT 1
- yolov5的4bit量化 HOT 1
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
D3
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
-
Recommend Topics
-
javascript
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
-
web
Some thing interesting about web. New door for the world.
-
server
A server is a program made to process requests and deliver data to clients.
-
Machine learning
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google ❤️ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.
from pytorch_quantization.