Tensorflow 中如何进行 8 位运算?

How 8 bit arithmetic is done in Tensorflow?

This TensorFlow 指南对神经网络权重和激活的 8 位表示提供了一些见解。它通过将 float32 中的最小值映射到 int8 中的 0 并将最大值映射到 255,将 float32 中的 min-max 的范围映射到 8 位格式。这意味着加法恒等式 (0) 映射到非零值,甚至乘法恒等式 ( 1) 可以映射到 int8 表示中除 1 以外的值。我的问题是,

  1. 失去这些身份后,如何在新的表示中进行算术运算?在 addition/sub 的情况下,我们可以在适当的缩放和偏移后取回大约 float32 数字。

  2. 如何将int8格式的乘法结果转成原生的float32格式?

这里有一些关于实践中量化过程的更多细节: http://www.oreilly.com/data/free/building-mobile-applications-with-tensorflow.csp

我们也将很快更新 tensorflow.org 文档。要具体回答 #2,您的 32 位累积结果有一个新的 min/max 浮点范围,您可以使用它转换回浮点数。