Giter Site home page Giter Site logo

Comments (5)

Jzz24 avatar Jzz24 commented on June 24, 2024

客气啦。我理解的量化分为以下步骤, 浮点模型--> 浮点模型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.

jingdonglin avatar jingdonglin commented on June 24, 2024

大佬你好,最近趁着假期在学习大佬的代码收获颇丰,已向周围小伙伴推荐了大佬的代码。但是关于量化过程中我有一点想不明白,训练得到quant_model后(也就是大佬的模型)。
:1、我在模型部署阶段,是需要把里面的卷积权值小数乘以255变成整数吗?如果是的话,卷积后的特征图也也是整数,但时当特征图经过BN层时,BN层的值全是浮点小数怎么和特征图进行定点运算呢?即前向推断过程中,即Conv->BN->激活函数,这一样过程,数据是咋流动的呢?
2、BN层融合这儿,量化训练后,如果把卷积层和BN层融合,变为新的卷积层后,那么这个卷积层的参数便不再是定点小数了,乘以尺度因子后,它也变不回int型的数吖?

from pytorch_quantization.

yolunghiu avatar yolunghiu commented on June 24, 2024

大佬你好,最近趁着假期在学习大佬的代码收获颇丰,已向周围小伙伴推荐了大佬的代码。但是关于量化过程中我有一点想不明白,训练得到quant_model后(也就是大佬的模型)。
:1、我在模型部署阶段,是需要把里面的卷积权值小数乘以255变成整数吗?如果是的话,卷积后的特征图也也是整数,但时当特征图经过BN层时,BN层的值全是浮点小数怎么和特征图进行定点运算呢?即前向推断过程中,即Conv->BN->激活函数,这一样过程,数据是咋流动的呢?
2、BN层融合这儿,量化训练后,如果把卷积层和BN层融合,变为新的卷积层后,那么这个卷积层的参数便不再是定点小数了,乘以尺度因子后,它也变不回int型的数吖?

@jingdonglin @Jzz24 大哥, 你这问题解决了吗?

from pytorch_quantization.

Jzz24 avatar Jzz24 commented on June 24, 2024

大佬你好,最近趁着假期在学习大佬的代码收获颇丰,已向周围小伙伴推荐了大佬的代码。但是关于量化过程中我有一点想不明白,训练得到quant_model后(也就是大佬的模型)。
:1、我在模型部署阶段,是需要把里面的卷积权值小数乘以255变成整数吗?如果是的话,卷积后的特征图也也是整数,但时当特征图经过BN层时,BN层的值全是浮点小数怎么和特征图进行定点运算呢?即前向推断过程中,即Conv->BN->激活函数,这一样过程,数据是咋流动的呢?
2、BN层融合这儿,量化训练后,如果把卷积层和BN层融合,变为新的卷积层后,那么这个卷积层的参数便不再是定点小数了,乘以尺度因子后,它也变不回int型的数吖?

@jingdonglin @Jzz24 大哥, 你这问题解决了吗?

整个量化的流程可以参照google的量化白皮书,现在的量化框架都是遵循那一套流程。首先拿到fp模型,然后融合bn,然后进行量化。无论离线量化还是finetune量化,都是先融合bn,再量化,我这个git的代码bn处理的不规范

from pytorch_quantization.

yolunghiu avatar yolunghiu commented on June 24, 2024

大佬你好,最近趁着假期在学习大佬的代码收获颇丰,已向周围小伙伴推荐了大佬的代码。但是关于量化过程中我有一点想不明白,训练得到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)

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo 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.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.