Www.KL126.Com - 坤龙教育资源网

TensorFlow 模型优化工具包:模型大小减半精度几乎不变

作者:小白 来源:未知 日期:2019-8-18 6:54:52 人气: 标签:电脑工具包
导读:雷锋网AI开发者按:近日,TensorFlow强势推出能将模型规模压缩却几乎不影响精度的半精度雷锋网AI开发者按:近日,TensorFlow强势推出能将模型规模压缩却几乎不影…

  雷锋网 AI 开发者按:近日,TensorFlow 强势推出能将模型规模压缩却几乎不影响精度的半精度

  雷锋网 AI 开发者按:近日,TensorFlow 强势推出能将模型规模压缩却几乎不影响精度的半精度浮点量化(float16 quantization)工具。小体积、高精度,还能够有效的改善 CPU 和硬件加速器延迟。TensorFlow 发出相应的文章对该工具做了简要的说明,雷锋网 AI 开发者将其整理编译如下。

  在计算中,半精度是二进制浮点计算机数字格式,占用计算机存储器中的 16 位。在 IEEE 754-2008 标准中,16 位 base-2 格式称为 binary16。它用于在高精度对于执行算术计算不是必需的应用中存储浮点值,并且 IEEE 754 标准将 binary16 指定为具有以下格式:

  训练后的 float16 quantization 减少了 TensorFlow Lite 模型的大小(高达 50%),同时以少量的精度损失为代价。它将模型常量(如权重和偏差值)从全精度浮点(32 位)量化为减少精度的浮点数据类型(IEEE FP16)。

  训练后的 float16 quantization 是量化 TensorFlow Lite 模型很好的方法,因为它对精度的影响极小并且能够使得模型大小显著减小。在这里可以通过查看该文档(包括一个新的浮动图表,),以帮助你了解不同的量化选项和场景。

  模型尺寸减少 2 倍。模型中的所有常量值都存储在 16 位浮点数而不是 32 位浮点数中;由于这些常量值通常在整个模型尺寸中占主导地位,因此通常会将模型的尺寸减小约一半。

  精确度损失可忽略不计。深度学习模型通常能够在使用相较于最初训练时更少精确度的情况下,产生良好的推理结果。并且在我们对多个模型的实验中,我们发现推理质量几乎没失。例如图 4 中,MobileNet V2 top 1 的测试结果显示,其精度降低值小于 0.03%。

  训练后的 float16 quantization 对精度的影响很小,并可以使得深度学习模型的大小减小约 2 倍。

  转换模型后,用户就可以像任何其它 TensorFlow Lite 模型那样直接运行该模型了。默认情况下,模型将在 CPU 上运行,通过将 16 位参数「上采样」为 32 位,然后在标准 32 位浮点运算中执行操作。在今后的优化过程中,我们也希望能够有更多的硬件支持加速 fp16 计算,这样半精度值就不再需要进行「上采样」的操作,而是直接进行计算。

  同时,用户还可以在 GPU 上运行模型。我们已经增强了 TensorFlow Lite GPU 代理,以接收 16 位精度参数并直接运行(而无需像在 CPU 上那样先进行转换)。

  有关 GPU 委托的概述,可以我们之前的帖子();如果想进一步了解该工具,可以在 CoLab 教程中查看 float16 quantization 工具的使用示例。属牛的今年多大

  财成国际