666DZY666 / micronet

micronet, a model compression and deploy lib. compression: 1、quantization: quantization-aware-training(QAT), High-Bit(>2b)(DoReFa/Quantization and Training of Neural Networks for Efficient Integer-Arithmetic-Only Inference)、Low-Bit(≤2b)/Ternary and Binary(TWN/BNN/XNOR-Net); post-training-quantization(PTQ), 8-bit(tensorrt); 2、 pruning: normal、regular and group convolutional channel pruning; 3、 group convolution structure; 4、batch-normalization fuse for quantization. deploy: tensorrt, fp32/fp16/int8(ptq-calibration)、op-adapt(upsample)、dynamic_shape
MIT License
2.21k stars 478 forks source link

关于是否有必要添加输出量化的问题? #105

Open Joejwu opened 2 years ago

Joejwu commented 2 years ago

大佬,您好!我看您的这份开源工作中只对每一层的权值与激活值进行了量化、反量化操作,然后输出作为下一层的输入,然后再作为下一层的输入作激活的量化反量化;但是我看别的一些量化代码中,除了对每一层的激活值、权值进行量化,还对每一层的输出进行量化、反量化,想请教一下大佬这是为啥?因为该层的输出量化不就是下一层的输入激活值量化吗?

791136190 commented 2 years ago

大佬,您好!我看您的这份开源工作中只对每一层的权值与激活值进行了量化、反量化操作,然后输出作为下一层的输入,然后再作为下一层的输入作激活的量化反量化;但是我看别的一些量化代码中,除了对每一层的激活值、权值进行量化,还对每一层的输出进行量化、反量化,想请教一下大佬这是为啥?因为该层的输出量化不就是下一层的输入激活值量化吗?

实际中会有很多多分支操作,以及混合精度量化,所以每层都是完整的对输入,权重,输出都量化会更通用