Pytorch 中的 int8 数据类型

int8 data type in Pytorch

在 Pytorch 中 运行 使用 int8 数据类型的量化模型的最佳方法是什么?我知道在 pytorch 中我可以将张量定义为 int8,但是,当我真正想使用 int8 时,我得到:

RuntimeError: _thnn_conv2d_forward is not implemented for type torch.CharTensor

所以我很困惑,当数据类型不支持诸如卷积之类的计算块时,如何在使用例如 int8 的 pytorch 中 运行 量化模型?我正在使用 pytorch 版本 1.0.1.post2.

取决于你的目标。

  1. 如果你想模拟你的量化模型:

您可以坚持现有的 float 数据类型,只在需要时引入截断,即:

 x = torch.floor(x * 2**8) / 2**8

假设 x 是浮点张量。

  1. 如果您想高效地模拟您的量化模型:

那么,PyTorch 恐怕用处不大,因为低级卷积运算符仅针对 float 类型实现。