谷歌终于推出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 条评论
登录 后参与评论

相关文章

来自专栏数据结构与算法

各种读入方式速度比较

以前写过一篇比较scanf与cin的博客,但是那篇博客存在很多bug,测速也很不规范。 今天我收集了一下众大佬的读入优化,来做个比较 特别鸣谢:my,zyh,h...

3314
来自专栏快乐八哥

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

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

2446
来自专栏AI科技评论

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

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

3356
来自专栏携程技术中心

干货 | 去哪儿酒店算法服务平台

作者简介 张中原,2011年加入去哪儿网,先后从事交易系统、酒店数据、公司基础平台与组件、存储和监控等相关工作,曾长期担任应届生技术培训和指导。 最近几年时间,...

43910
来自专栏应兆康的专栏

9. 优化指标和满足指标

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

38212
来自专栏应兆康的专栏

9. 优化指标和满足指标

1471
来自专栏量子位

TensorFlow 1.9.0正式版来了!新手指南全新改版,支持梯度提升树估计器

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

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

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

4098
来自专栏机器人网

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

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

4118
来自专栏大数据

用R语言进行文本挖掘和主题建模

我们每天都会遇到各种各样的文本数据 - 但大部分是非结构化的,并不是全部都是有价值的。请继续阅读以了解文本挖掘如何提供帮助。

4151

扫码关注云+社区

领取腾讯云代金券