首页 > 解决方案 > 更高的浮点精度和机器学习

问题描述

我通过许多研究论文发现机器学习算法(更具体地说是 CNNs/DNNs)实际上是非常容错的应用程序,即它们可以承受严重的数值错误,从而可以获得非常可接受的结果质量和准确性通过使用 8 位甚至亚字节整数计算运算符。例如,一些研究论文表明,使用 4 位整数 MAC 单元可以获得良好的结果,从而使浮点单元对于此类应用完全没有用处。

我的问题是关于浮点的,你认为这在哪里真的是强制性的?它是否在任何机器学习/人工智能子域中找到任何位置?或者它真的只是通用和科学计算的游戏?任何指向一些真正需要并依赖它的有用应用程序/基准/平台的指针?

标签: machine-learningfloating-pointcomputer-visionprecisionscientific-computing

解决方案


在浮点数/整数和位数之间做出设计决定。做出这个决定的一个好方法是对模型进行训练后量化,然后看看它如何改变模型的准确性和性能改进。如果在可接受的精度下降水平内有足够的性能改进,则可以将量化作为后处理步骤添加到模型生成过程中。

这种方法不仅限于科学计算或任何特定领域。初始图像识别模型被量化为预测时间的性能提高了 4 倍。话虽如此,在 Jetson 或 Tensforflow-Lite 应用程序等边缘设备上部署的模型中越来越多地采用量化

一个好的起点:Tensorflow 训练后量化

以下是这里的基准 图像识别模型中量化的基准


推荐阅读