如何在 Python 中执行定点量化
Posted
技术标签:
【中文标题】如何在 Python 中执行定点量化【英文标题】:How to perform fixed-point quantization in Python 【发布时间】:2021-03-26 00:11:56 【问题描述】:我希望量化现有神经网络模型的权重和偏差。据我了解,定点表示可确保权重、偏差和激活的固定位宽,并具有预定固定数量的整数和小数位。
基本上我想执行训练后量化。我查看了这篇文章https://www.tensorflow.org/model_optimization/guide/quantization/post_training。
但是我找不到任何支持我想要做的事情,即能够在权重、偏差和激活的定点表示方案中指定整数和小数位的数量。
我确实找到了似乎支持此功能的 QKeras 库。但是,它似乎没有内置的量化 sigmoid 层。
任何可以帮助我做我想做的事情的指针或图书馆/文章推荐,都会非常有帮助,非常感谢。
【问题讨论】:
【参考方案1】:一种使用任意定点小数(基数为 2)类型量化权重和偏差的方法是使用fxpmath python 包。
您正在尝试做的一个简单示例是这个 jupyter 笔记本:Fixed-Point Precision Neural Network for MNIST dataset。考虑到它只显示权重和偏差的转换来评估推理性能,而不是激活。这也可以使用相同的包手动实现(它支持 Numpy)。
【讨论】:
以上是关于如何在 Python 中执行定点量化的主要内容,如果未能解决你的问题,请参考以下文章