中文

NITI:使用纯整数算术训练整数神经网络

计算机视觉与模式识别 2022-02-14 v2

摘要

尽管整数算术已广泛用于深度量化神经网络推理以提升性能,训练仍主要是使用浮点算术执行的任务。这是因为高动态范围和数值精度对大多数现代训练算法的成功至关重要。然而,由于其于硬件加速器在计算、存储和能耗方面的潜在优势,能够以低精度纯整数算术实现的神经网络训练方法仍是一个活跃的研究挑战。本文中,我们提出NITI,一种高效的深度神经网络训练框架,其将所有参数和中间值存为整数,并仅用整数算术计算。我们提出了一种伪随机舍入方案,消除了对外部随机数生成的需求,以促进将较宽中间结果转换为低精度存储。此外,提出了一种用纯整数算术计算的交叉熵损失反向传播方案。我们给出了NITI的概念验证开源软件实现,其利用现代GPU中的原生8位整数运算实现端到端训练。与使用浮点存储和算术的等价训练设置相比,NITI在MNIST和CIFAR10数据集上采用8位整数存储与计算实现了可忽略的精度下降。在ImageNet上,权重累加需要16位整数配合8位数据通路,取得了与全浮点实现可比的训练结果。

关键词

引用

@article{arxiv.2009.13108,
  title  = {NITI: Training Integer Neural Networks Using Integer-only Arithmetic},
  author = {Maolin Wang and Seyedramin Rasoulinezhad and Philip H. W. Leong and Hayden K. H. So},
  journal= {arXiv preprint arXiv:2009.13108},
  year   = {2022}
}