HarmonyOS开发者限时福利来啦!最高10w+现金激励等你拿~ 了解详情
写点什么

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:016727
用户头像
陈思 InfoQ编辑

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

关注

评论

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

三年Crud,一周学会MySQL,助我拿到阿里研发Offer

钟奕礼

程序员 java面试 java编程 #java

我不写单元测试,被批了

钟奕礼

Java 程序员 java面试 java编程

在 Istio 服务网格中使用 Argo Rollouts 实现智能的渐进式发布

Se7en

云原生

CleanMyMac2024值不值的下载安装?

茶色酒

CleanMyMac X CleanMyMac X2023

同事跳槽拿下阿里P6Offer,程序员:会点基础还真不行

钟奕礼

Java 程序员 java面试 java编程

鸿蒙开发实例|构建轻量级智能穿戴设备用户界面

TiAmo

华为云 鸿蒙开发 12月月更

模块二作业

Ryan

高性能 构架

分布式计算MapReduce究竟是怎么一回事?

JAVA旭阳

Java 大数据

SpringBoot+Mybatis+Mysql项目构建

@下一站

程序设计 12月日更 12月月更 springbootdemo

在 Ubuntu 上安装 Discourse 开发环境

HoneyMoose

天天刷 B站,了解他们的评论系统是如何设计的吗?

小小怪下士

Java 程序员 系统设计

纯干货,不愧是阿里顶配版Spring Security笔记,面面俱到太全了!

架构师之道

Java spring 架构师

不掌握这些坑,你敢用BigDecimal吗?

钟奕礼

Java 程序员 java面试 java编程

深入理解RBAC

俞凡

架构 网络安全 rbac

Python抓取B站"卡塔尔 世界杯"的视频数据

勇士

Python 爬虫 B站 世界杯

流处理基础概念-延迟和吞吐

穿过生命散发芬芳

流处理 12月月更

阿里巴巴最新推出王者笔记:“Spring MVC源码与实践”

钟奕礼

Java 程序员 java面试 java编程

爱了!阿里巴巴JAVA岗发布,最新内部面试题(含P5-P7)

钟奕礼

Java 程序员 java面试 java编程

FLStudio水果2024中文免费版下载

茶色酒

FL Studio FL Studio21

没有二十年功力,写不出Thread.sleep(0)这一行“看似无用”的代码!

钟奕礼

Java 程序员 java面试 java编程

发布!第五届“强网”拟态防御国际精英挑战赛精彩抢先看!

科技热闻

作者推荐 | 【分布式技术专题】「架构设计方案」图解学习法总结集群模式下的各种软负载均衡策略实现及原理分析

洛神灬殇

分布式架构 负载均衡算法 12月日更 12 月 PK 榜

太卷了!5年Java程序员竟然答不出应届生字节二面?

小小怪下士

Java 程序员 字节跳动 面试

【Java难点攻克】「NIO和内存映射性能提升系列」彻底透析NIO底层的内存映射机制原理与Direct Memory的关系

洛神灬殇

内存映射 用户态 内核态 12 月 PK 榜 直接内存

线性表→顺序表→链表 逐个击破

C++后台开发

数据结构 linux开发 Linux服务器开发 顺序表 C++开发

还在用Jenkins?试试这款面向DevOps的自动化部署工具吧,贼带劲!

架构师之道

开源 编程

CleanMyMac2023mac电脑清理磁盘软件

茶色酒

CleanMyMac CleanMyMacX CleanMyMac X

理解Java的强引用、软引用、弱引用和虚引用

钟奕礼

Java 程序员 java面试 java编程

基于ANTLR的Mysql语法解析

AiDaddy

MySQL ANTLR 语法解析

第十届MTSC上 OpenHarmony与开发者共话开源操作系统发展新格局

Geek_2d6073

easyrecovery2024永久免费版数据恢复软件

茶色酒

EasyRecovery15 easyrecovery2023

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