一、clip函数:限制一个array的上下界
读完论文 OPTIMAL ANN-SNN CONVERSION FOR HIGH-ACCURACY AND ULTRA-LOW-LATENCY SPIKINGNEURAL NETWORKS 量化1、精度科普 2、量化 2.1量化方法的目的就是使用 8 位或 16 位的整型数来替代浮点数,这种方法试图利用定点点积来替代浮点点积,这很大程度上降低了神经网络在无硬浮点设备上的运算开销。同时,该方法在一些支持单指令流多数据流 SIMD 的硬件设备上优势就更加明显了,比如128-bit 寄存器 SSE 可以单个指令同时运算 4 个 32 位单精度浮点,8 个 16 位整型,16 个 8 位整型。显然 8 位整型数在 SIMD 的加持下,相比于单精度浮点运算速率要更快一些。另外,该方法还可以减少模型的内存和存储占用空间。 量化是一个信息有损压缩的过程,如果训练过程中使用FP32,在模型推理时使用Post-training Quantization(PTQ)直接量化为INT8模型,模型精度会存在一定损失。而量化感知训练(Quantization-aware-training, QAT)在模型训练过程中就引入了伪量化(Fake-quantization)来模拟量化过程中带来的误差,通过这种方式能够进一步减少量化后模型的精度损失。 模型经过量化后,在推理框架(e.g. TensorRT、Openvino)运行时,会根据不同的Op调用相应的算子:
2.2 Post-training-quantizationPost-training-quantization(PTQ)是目前常用的模型量化方法之一。以INT8量化为例,PTQ处理流程为
2.3 QAT从上一小节可以看出如果PTQ中模型训练和量化是分开的,而QAT则是在模型训练时加入了伪量化节点,用于模拟模型量化时引起的误差。QAT方式需要重新对插入节点之后的模型进行finetune,通过伪量化操作,可以是网络各层的weights和activation输出分布更加均匀,相对于PTQ可以获得更高的精度。以INT8量化为例,QAT处理流程为
The idea of quantization aware training is to ask the neural networks to take the effect of such information loss into account during training. Therefore, during inference, the model will have less sacrifice to the inference accuracies. |
原文地址:https://blog.csdn.net/IsayIwant/article/details/131592010
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:https://www.msipo.com/article-189.html 如若内容造成侵权/违法违规/事实不符,请联系MSIPO邮箱:3448751423@qq.com进行投诉反馈,一经查实,立即删除!
Copyright © 2023, msipo.com