今天,TensorFlow发布了一个新的优化工具包:一套可以让开发者,无论是新手还是高级开发人员,都可以使用来优化机器学习模型以进行部署和执行的技术。
这些技术对于优化任何用于部署的TensorFlow模型都非常有用。特别是对于在内存紧张、功耗限制和存储有限的设备上提供模型的TensorFlow Lite开发人员来说,这些技术尤其重要。
关于TensorFlow Lite,这里有更多教程:https://www.tensorflow.org/mobile/tflite/
优化模型以减小尺寸,降低延迟和功耗,同时使精度损失可以忽略不计
这次添加支持的第一个技术是向TensorFlow Lite转换工具添加post-training模型量化(post-training quantization)。对于相关的机器学习模型,这可以实现最多4倍的压缩和3倍的执行速度提升。
通过量化模型,开发人员还将获得降低功耗的额外好处。这对于将模型部署到手机之外的终端设备是非常有用的。
启用 post-training quantization
post-training quantization技术已集成到TensorFlow Lite转换工具中。入门很简单:在构建了自己的TensorFlow模型之后,开发人员可以简单地在TensorFlow Lite转换工具中启用“post_training_quantize”标记。假设保存的模型存储在saved_model_dir中,可以生成量化的tflite flatbuffer:
1converter=tf.contrib.lite.TocoConverter.from_saved_model(saved_model_dir)
2converter.post_training_quantize=True
3tflite_quantized_model=converter.convert()
4open(“quantized_model.tflite”, “wb”).write(tflite_quantized_model)
我们提供了教程详细介绍如何执行此操作。将来,我们的目标是将这项技术整合到通用的TensorFlow工具中,以便可以在TensorFlow Lite当前不支持的平台上进行部署。
教程:
https://github.com/tensorflow/tensorflow/blob/master/tensorflow/contrib/lite/tutorials/post_training_quant.ipynb
post-training 量化的好处
模型大小缩小4倍
模型主要由卷积层组成,执行速度提高10-50%
基于RNN的模型可以提高3倍的速度
由于减少了内存和计算需求,预计大多数模型的功耗也会降低
有关模型尺寸缩小和执行时间加速,请参见下图(使用单核心在Android Pixel 2手机上进行测量)。
图1:模型大小比较:优化的模型比原来缩小了4倍
图2:延迟比较:优化后的模型速度提高了1.2到1.4倍
这些加速和模型尺寸的减小对精度影响很小。一般来说,对于手头的任务来说已经很小的模型(例如,用于图像分类的mobilenet v1)可能会发生更多的精度损失。对于这些模型,我们提供预训练的完全量化模型(fully-quantized models)。
图3:精度比较:除 mobilenets外,优化后的模型的精度下降几乎可以忽略不计
我们希望在未来继续改进我们的结果,请参阅模型优化指南以获得最新的测量结果。
模型优化指南:
https://www.tensorflow.org/performance/model_optimization
post-training quantization的工作原理
在底层,我们通过将参数(即神经网络权重)的精度从训练时的32位浮点表示降低到更小、更高效的8位整数表示来运行优化(也称为量化)。 有关详细信息,请参阅post-training量化指南。
post-training量化指南:
https://www.tensorflow.org/performance/post_training_quantization
这些优化将确保将最终模型中精度降低的操作定义与使用fixed-point和floating-point数学混合的内核实现配对。这将以较低的精度快速执行最繁重的计算,但是以较高的精度执行最敏感的计算,因此通常会导致任务的最终精度损失很小,甚至没有损失,但相比纯浮点执行而言速度明显提高。
对于没有匹配的“混合”内核的操作,或者工具包认为必要的操作,它会将参数重新转换为更高的浮点精度以便执行。有关支持的混合操作的列表,请参阅post-training quantizaton页面。
未来的工作
我们将继续改进post-training量化技术以及其他技术,以便更容易地优化模型。这些将集成到相关的TensorFlow工作流中,使它们易于使用。
post-training量化技术是我们正在开发的优化工具包的第一个产品。我们期待得到开发者的反馈。
关注公众账号
【飞马会】
▼
往期福利
关注飞马会公众号,回复对应关键词打包下载学习资料;回复“入群”,加入飞马网AI、大数据、项目经理学习群,和优秀的人一起成长!
回复 数字“1”下载从入门到研究,人工智能领域最值得一读的10本资料(附下载)
回复数字“2”机器学习 & 数据科学必读的经典书籍,内附资料包!
回复数字“3”走进AI & ML:从基本的统计学到机器学习书单(附PDF下载)
回复数字“4”了解人工智能,30份书单不容错过(附电子版PDF下载)
回复数字“5”大数据学习资料下载,新手攻略,数据分析工具、软件使用教程
回复数字“6”AI人工智能:54份行业重磅报告汇总(附下载)
回复数字“7”TensorFlow介绍、安装教程、图像识别应用(附安装包/指南)
回复数字“8”大数据资料全解析(352个案例+大数据交易白皮书+国内外政策汇篇)
回复数字“9”干货 | 荐读10本大数据书籍(初级/中级/高级)成为大数据专家!
回复数字“10”麦肯锡160页报告:2030年全球将可能8亿人要被机器抢饭碗
回复数字“11”50本书籍大礼包:AI人工智能/大数据/Database/Linear Algebra/Python/机器学习/Hadoop
回复数字“12”小白| Python+Matlab+机器学习+深度神经网络+理论+实践+视频+课件+源码,附下载!
回复数字“13”大数据技术教程+书籍+Hadoop视频+大数据研报+科普类书籍
回复数字“14”小白| 机器学习和深度学习必读书籍+机器学习实战视频/PPT+大数据分析书籍推荐!
回复数字“15”大数据hadoop技术电子书+技术理论+实战+源代码分析+专家分享PPT
回复数字“16”100G Python从入门到精通!自学必备全套视频教程+python经典书籍!
回复数字“17”【干货】31篇关于深度学习必读论文汇总(附论文下载地址)
回复数字“18”526份行业报告+白皮书:AI人工智能、机器人、智能出行、智能家居、物联网、VR/AR、 区块链等(附下载)
回复数字“19”800G人工智能学习资料:AI电子书+Python语言入门+教程+机器学习等限时免费领取!
回复数字“20”17张思维导图,一网打尽机器学习统计基础(附下载)
回复数字“21”收藏 |7本 Matlab入门经典教程书籍,不可错过!
回复数字“22”吴恩达新书,教你构建机器学习项目:《Machine Learning Yearning》
回复数字“23”机器学习:怎样才能做到从入门到不放弃?(内含福利)
回复数字“24”限时下载 | 132G编程资料:Python、JAVA、C,C++、机器人编程、PLC,入门到精通~
回复数字“25”限资源 | 177G Python/机器学习/深度学习/算法/TensorFlow等视频,涵盖入门/中级/项目各阶段!
回复数字“26”人工智能入门书单推荐,学习AI的请收藏好(附PDF下载)
回复数字“27”资源 | 吴恩达斯坦福CS230深度学习课程全套资料放出(附下载)
回复数字“28”懂这个技术的程序员被BAT疯抢...(内含资料包)
回复数字“29”干货 | 28本大数据/数据分析/数据挖掘电子书合集免费下载!
回复数字“30”领取 | 100+人工智能学习、深度学习、机器学习、大数据、算法等资料,果断收藏!
回复数字“31”2G谷歌机器学习25讲速成课全集(中文版),限时下载
回复数字“32”Matlab安装包+教程视频,让你从入门到精通!
回复数字“33”程序员去阿里面试,没想到过程如此壮烈 (内含资料包)
回复 人工智能下载《FMI人工智能与大数据峰会嘉宾演讲PPT》
回复AI 江湖下载《十大AI江湖领域》
回复ML实践下载《机器学习实践经验指导(英文版)》
回复DL论文下载《深度学习100篇以上论文资料》
回复算法 下载《数据挖掘十大经典算法》
回复6.10 下载《6.10饿了么&飞马网项目管理实践PPT》