写点什么

TensorFlow 模型优化工具包增加新功能,可将深度学习模型缩小一半

  • 2019-08-07
  • 本文字数:1487 字

    阅读完需:约 5 分钟

TensorFlow模型优化工具包增加新功能,可将深度学习模型缩小一半

北京时间 8 月 7 日,TensorFlow 官方在 Medium 博客上更新了一篇文章,宣布为模型优化工具包添加了一项新功能:半精度浮点量化工具,据介绍,该工具能够在几乎不损失精度的情况下,将训练模型缩小一半,还能改善 CPU 和硬件加速器延迟。


TensorFlow 团队将训练后的半精度浮点量化作为模型优化工具包的一部分,这一套工具包括了混合量化,全整数量化和修剪等功能。


通过牺牲极少的精度,训练后的半精度浮点量化成功缩小了 TensorFlow Lite 模型的尺寸(高达 50%),并将模型常数(如权重和偏差值)从全精度浮点(32 位)为精度降低的浮点数据类型(IEEE FP16)。


训练后的半精度浮点是训练 TensorFlow Lite 模型的好工具,因为它对精度的影响极小并且模型尺寸显着减小。


感兴趣的读者可以点击这里查看相关文档,以便解不同的量化选项和方案。


降低精度的好处

降低精度有很多好处,特别是在部署到边缘时:


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

  • 精确度损失可忽略不计。深度学习模型经常能够在推理上产生良好的结果,同时使用比最初训练时更少的精度。在对几个模型的实验中,研发人员发现推理质量几乎没有损失(见下面的结果)。

尺寸缩小 2 倍,精度折衷可忽略不计

训练后的半精度浮点量化对精度的影响很小,但可以使深度学习模型的大小缩小约 2 倍。例如,以下是 MobileNet V1 和 V2 型号以及 MobileNet SSD 型号的一些结果。MobileNet v1 和 v2 的准确度结果基于ImageNet图像识别任务。在COCO对象识别任务上评估 SSD 模型。


模型准确性

通过将标准 Mobilenet float32 模型和 fp16 变体分别在:ILSVRC 2012 图像分类任务,以及 COCO 对象检测任务上进行了评估,研发人员得到了如下的结果:


如何启用后训练半精度浮点量化

开发者可以在 TensorFlow Lite 转换器上指定训练后的半精度浮点量化,方法是使用训练好的 float32 模型,将优化设置为 DEFAULT,并将目标规范支持的类型设置为半精度浮点常量:


import tensorflow as tf converter = tf.lite.TFLiteConverter.from_saved_model(saved_model_dir) converter.optimizations = [tf.lite.Optimize.DEFAULT] converter.target_spec.supported_types = [tf.lite.constants.FLOAT16] Tflite_quanit_model = converter.convert()
复制代码


转换模型后即可直接运行,就像任何其他 TensorFlow Lite 模型一样。默认情况下,模型将通过将 16 位参数“上采样”为 32 位,然后在标准 32 位浮点运算中执行操作来在 CPU 上运行。


开发者还可以在 GPU 上运行模型。研发团队已经增强了 TensorFlow Lite GPU 代理,以接收精简参数并直接运行(不需要像在 CPU 上那样转换为 float32)。在应用程序中,开发者可以通过 TfLiteGpuDelegateCreate 功能创建GPU代理。指定代理的选项时,请务必设置 precision_loss_allowed 为 1:


//Prepare GPU delegate.  const TfLiteGpuDelegateOptions options = {    .metadata = NULL,    .compile_options = {      .precision_loss_allowed = 1, // FP16      .preferred_gl_object_type = TFLITE_GL_OBJECT_TYPE_FASTEST,      .dynamic_batch_enabled = 0, // Not fully functional yet    },  }; 
复制代码


有关 GPU 代理的概述,请参阅此链接:


https://medium.com/tensorflow/tensorflow-lite-now-faster-with-mobile-gpus-developer-preview-e15797e6dee7


查看使用半精度浮点量化的工作示例请点这里:


https://github.com/tensorflow/tensorflow/blob/master/tensorflow/lite/g3doc/performance/post_training_float16_quant.ipynb


2019-08-07 15:017017
用户头像
陈思 InfoQ编辑

发布了 576 篇内容, 共 302.2 次阅读, 收获喜欢 1306 次。

关注

评论

发布
暂无评论
发现更多内容

张文歆:思维需碰撞,才有更大的“火花”|对话 Doris

SelectDB

开源 职场 成长 学习路线 开源治理

node.js的模块化与npm

急需上岸的小谢

11月月更

「Go实战」在 Go 项目中基于本地内存缓存的实现及应用

Go学堂

golang 缓存 开源 程序员 性能

阿里P8出,入职阿里必会199道SpringCloud面试题,你能掌握多少?

钟奕礼

Java java程序员 java面试 java编程

【LeetCode】统计匹配检索规则的物品数量Java题解

Albert

算法 LeetCode 11月月更

软件测试 | 接口自动化你不懂?听HttpRunner的作者怎么说

测试人

软件测试 自动化测试 接口测试 接口自动化 HttpRunner

战略合作再升级!合合信息与腾讯云联合推出海外智能风控方案

科技热闻

精彩议程更新,从云原生到 Serverless 的思考和收获,邀你共同见证丨PingCAP DevCon 2022

PingCAP

TiDB

首次!阿里巴巴团队共同携手编写“大厂面试参考指南”v1.0版本

钟奕礼

Java 面试 java程序员 java 编程 #java Java 面试题

HUAWEI DevEco Studio 3.1版本发布,配套ArkTS声明式开发全面升级

HarmonyOS开发者

HarmonyOS

HMS Core手语服务荣获2022中国互联网大会“特别推荐案例”:助力建设数字社会

HarmonyOS SDK

手语 HMS Core

应用程序现代化指南

世开 Coding

应用现代化 软件升级

微服务中的服务发现是什么?

API7.ai 技术团队

微服务 服务发现 API网关 APISIX

EventBridge 生态实践:融合 SLS 构建一体化日志服务

阿里巴巴云原生

阿里云 云原生 EventBridge

Dive into TensorFlow系列(3)- 揭开Tensor的神秘面纱

京东科技开发者

Python 人工智能 深度学习 tensorflow

DTSE Tech Talk | 第11期:深入浅出畅谈华为云低时延直播技术

华为云开发者联盟

云计算 后端 华为云

有奖报名|StarRocks 获开源热力值增速第一,有你的贡献

StarRocks

数据库

分布式锁

急需上岸的小谢

11月月更

云服务器的四大作用讲解-行云管家

行云管家

云计算 服务器 云服务 云服务器

计算机网络:IEEE 802.11无线局域网

timerring

计算机网络 11月月更

软件测试 | 测试开发 | 校招面试真题 | 实习生和应届生有什么区别?

测吧(北京)科技有限公司

软件测试 软件测试工程师

Wallys/ WiFi6 MiniPCIe Module 2T2R 2×2.4GHz 2x5GHz MT7915 MT7975 /industrial mini pcie card

wallysSK

MT7915

5种GaussDB ETCD服务异常实例分析处理

华为云开发者联盟

数据库 后端 华为云

node.js的path路径模块和http模块

急需上岸的小谢

11月月更

StarRocks 与 DataPipeline 完成兼容性互认证,携手共建数据基础设施生态

StarRocks

数据库

数据库精选 60 道面试题

钟奕礼

Java Java 面试 java程序员 java编程

成为千行百业数字化转型催化剂的,竟然是它!

元年技术洞察

微服务 低代码 数字化转型

打开时空隧道,重演云栖72小时云世界

阿里云CloudImagine

阿里云 云栖大会

学历不是问题!社招大专老哥阿里 腾讯Java面试,上岸入职京东

钟奕礼

java程序员 java面试 java编程 #java

Spring 5(五)事务操作

浅辄

Spring5 事务 11月月更

MetaForce佛萨奇2.0系统开发DAPP搭建

薇電13242772558

dapp开发

TensorFlow模型优化工具包增加新功能,可将深度学习模型缩小一半_AI&大模型_陈思_InfoQ精选文章