谷歌终于推出TensorFlow Lite,实现在移动设备端部署AI

安妮 编译整理 量子位 出品 | 公众号 QbitAI

还得从半年前说起。

今年5月的谷歌I/O大会上,安卓工程副总裁Dave Burke宣布将推出一个专门为移动设备优化的TensorFlow,称为TensorFlow Lite。

安卓工程副总裁Dave Burke

自谷歌公布这个计划以来,已经涌现出了很多移动端部署AI的产品,包括苹果的CoreML、Clarifai移动端训练AI的云服务、还有像华为Mate 10上的硬件麒麟970 AI处理器。

今天,谷歌终于宣布推出TensorFlow Lite,它是TensorFlow在移动和嵌入式设备中的轻量解决方案,为开发者提供在移动和嵌入设备上部署AI的能力。

特性

从机架式服务器到小型物联网设备,TensorFlow已经能在很多平台上运行。

有一个问题是,随着使用的机器学习模型数量在近几年呈指数型增长,所以有必要在移动和嵌入设备中部署它们。TensorFlow Lite支持设备内(on-device)的机器学习模型的低延迟推理。

它有以下三点重要特性:

轻量:支持小型binary size和快速初始化/启动的设备内机器学习模型的推理。

跨平台:为可在多个不同平台上运行而设计运行时,首先允许安卓和iOS平台使用。

快速:对移动设备进行优化,包括有显著改善的模型加载时间,并且支持硬件加速。

今天,越来越多的移动设备中加入了为特定用途的定制硬件,使之更有效地处理机器学习的负载。TensorFlow Lite用安卓的神经网络API,以利用新的加速器。

当加速器硬件不可用时,TensorFlow Lite返回优化的CPU执行操作,保证模型仍让在很多设备上快速运行。

架构

先来看张TensorFlow Lite的架构图:

单个组件包括:

TensorFlow模型:一个存储在磁盘中的TensorFlow模型。

TensorFlow Lite转换器:将模型转化为TensorFlow Lite文件格式的程序。

TensorFlow Lite模型文件:基于FlatBuffers的模型文件格式,已经对最大速度和最小规模进行过优化。

TensorFlow Lite模型之后会被部署到手机APP中,包括:

Java API:安卓上C++ API的轻便封装

C++ API:加载TensorFlow Lite模型文件并调用编译器,在安卓和iOS系统中都有体现。

编译器:用一系列运算符执行模型。编译器支持加载可选择的操作符;如果没有运算符,编译器只有70KB,当所有运算符加载完时为300KB,比TensorFlow Mobile需要的1.5M小很多。

在选中的安卓设备上,编译器将用安卓神经网络API实现硬件加速,如果无API可用,将默认用CPU执行。

开发人员也可以使用C++ API实现自定义的内核,也可以被编译器使用。

模型

目前,TensorFlow Lite已经开始支持一系列在手机上训练和优化过的模型:

MobileNet:一种能识别1000多种不同物体类别的视觉模型,专为高效执行移动和嵌入式设备而设计。

Inception v3:功能类似MobileNet的图像识别模型,它的准确性更高,尺寸也更大。

智能回复:一种设备内部的对话模型,支持即时回复对话聊天信息。第一方和第三方的讯息App在Android Wear上使用这个特征。

Inception v3和MobileNet已经在ImageNet数据集上进行了训练。你可以通过迁移学习在你的图像数据集上重新训练这些数据。

未来

目前,TensorFlow已经可以通过TensorFlow Mobile API支持移动嵌入设备中的模型部署。未来,TensorFlow Lite应该被当做TensorFlow Mobile的进化版,随着不断优化将成为移动和嵌入设备上部署模型的推荐解决方案。

今天推出的TensorFlow Lite还是开发者预览版本,目前TensorFlow Mobile已久支持应用程序的开发。

最后,附一系列资料——

代码地址:

https://github.com/tensorflow/tensorflow/tree/master/tensorflow/contrib/lite

文档页面:

https://www.tensorflow.org/mobile/tflite/

博客介绍:

https://developers.googleblog.com/2017/11/announcing-tensorflow-lite.html

模型示例:

https://research.googleblog.com/2017/11/on-device-conversational-modeling-with.html

安卓神经网络API:

https://developer.android.com/ndk/guides/neuralnetworks/index.html

原文发布于微信公众号 - 量子位(QbitAI)

原文发表时间:2017-11-15

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

发表于

我来说两句

0 条评论
登录 后参与评论

相关文章

来自专栏应兆康的专栏

9. 优化指标和满足指标

这里有组合多个评价指标的另一个方法。 假设你同时关系算法的精度和运行时间。你需要在如下分类器中进行选择:

37712
来自专栏量子位

搞自动驾驶汽车很复杂?其实一个浏览器就行(讲解、代码全都有)

作者:janhuenermann 编译:量子位(QbitAI) · 问耕 自动驾驶高大上?其实在浏览器里也能玩。 上面那个视频是一个2D环境下的无人驾驶系统,...

3015
来自专栏AI科技评论

深度 | 基于移动设备的机器学习,本地与云端孰优孰劣?

AI科技评论按:如果您觉得,是时候给自己的手机应用添加一些热门的机器学习或深度学习算法.....这是个好想法!但您会怎么选择?致力于提供算法服务及小白科普的咨询...

3136
来自专栏机器学习算法与Python学习

深度学习框架Caffe/CNTK/Tensorflow/Theano/Torch的评估与比较

分享 有问题请到留言区互动 人工智能无疑是计算机世界的前沿领域,而深度学习无疑又是人工智能的研究热点,那么现在都有哪些开源的深度学习工具,他们各自的优缺点又是什...

3998
来自专栏新智元

机器学习实践:用 Spark 和 DBSCAN 对地理定位数据进行聚类

【新智元导读】数据专家 Natalino Busa 在本文中讨论了如何从大量的定位事件中获取用户的活动区域来构建基于位置的服务。他经过论证得出,DBSCAN算法...

4398
来自专栏挖掘大数据

如何利用已有的大数据技术,搭建机器学习平台

人脑具备不断积累经验的能力,依赖经验我们便具备了分析处理的能力,比如我们要去菜场挑一个西瓜,别人或者自己的经验告诉我们色泽青绿、根蒂蜷缩、纹路清晰、敲声浑响的西...

5750
来自专栏AI科技大本营的专栏

手机也能直接玩机器学习了?来,让大神手把手教你

对于各种热门的机器学习、深度学习课程,你一定了解过不少了。 但上课之后,如何把学出来的这些新方法用在你的工作项目?如何让你的移动应用也能具备机器学习、深度学习...

4089
来自专栏快乐八哥

数据可视化-EChart2.0使用总结2

接上一篇博客,这篇博客主要讨论EChart里面的散点图、气泡图和雷达图。 4.散点图-Scatter Chart 适合场景:三维数据集,但是只有两个维度需要比较...

2276
来自专栏机器人网

[学习}28 款 GitHub 最流行的开源机器学习项目

现在机器学习逐渐成为行业热门,经过二十几年的发展,机器学习目前也有了十分广泛的应用,如:数据挖掘、计算机视觉、自然语言处理、生物特征识别、搜索引擎、医学诊...

3878
来自专栏应兆康的专栏

9. 优化指标和满足指标

1381

扫码关注云+社区