2

为我的新手问题道歉。

从这些文档中,我了解了使用 8 位数字节省内存和提高性能对准确性影响非常小的优势:

https://www.tensorflow.org/performance/quantization

其他博客提到这些量化模型可以卸载到 DSP,我有低成本的 DSP,它可以在一个时钟内以非常低的功耗进行 168 次乘法和 9 位输入的加法,我想用它来推断一些我训练的模型。我不想使用任何现有的框架,因为它们无论如何都不适合/工作在目标上。我只想训练模型,保存它,然后自己读取权重,同时我将手动对网络的流/图进行硬编码,作为概念的证明。

当我将其视为仅压缩时,对层 + 8 位权重使用 min/max 是有意义的,这可能导致非对称范围,并且 0 不在 8 位范围的中间。解压成 32 位实数值,计算就很容易了。

但仍然在多个博客中提到,这种方法可以直接在 DSP 上使用,并使用 8 位数字进行计算。我仍然无法理解如何实施。在过去,我曾经有定点数学,我假装某处是小数点,然后在乘法后移动结果。但是我认为当使用最小/最大/非对称方法来训练/存储模型时,这是无法做到的。我是否遗漏了一些东西,因为我无法理解如何在 DSP 中使用简单的整数乘法器在低级别实现这一点?

4

0 回答 0