「动手学习Tensorflow」- Tensorflow综述Ⅱ

2020 年 3 月 27 日 AINLP

 一文概览Tensorflow方方面面。





大家好,我是人工智能工程师Alpha浪。


今天,我们开始「动手学习Tensorflow - Tensorflow 综述」的第二部分。


快速学习一门新技术的最好方法之一,就是首先对这门技术有着全局的认识,然后在深入了解每一部分的细节。


综述就是最好的给你全局认识的读物。


关注公众号“AI工程师成长之路”, 回复"Tensorflow知多少", 获取最新最全的自制tensorflow综述PPT。





01


前文回顾




「动手学习Tensorflow」- Tensorflow综述I中,我们介绍了什么是Tensorflow,为什么要使用Tensorflow,以及Tensorflow的主要包含的模块:


  • Tensorflow核心开源库
  • Tensorflow.js
  • 针对移动设备和IOT设备的Tensorflow Lite
  • 针对成产环境的TFX


上文中我们对Tensorflow核心开源库做了概括性的介绍,这一篇对剩下的三部分做介绍。





02


Tensorflow.JS



Tensorflow.js是一个使用javaScript进行机器学习开发的库。

通过Tensorflow.js,我们可以进行机器学习模型的开发,并可在浏览器,微信小程序或者Node.js中进行部署。

对于Tensorflow.js, 我们可以有以下三种使用方式:

  • 使用现成的javascript模型, 如https://www.npmjs.com/package/@tensorflow-models/mobilenet 模型;或者对Python Tensorflow Keras模型或者Saved Model模型进行转换;进而将模型部署在浏览器中或者Node.js中。

  • 重新训练已有的模型:导入已有的模型,然后在Tensorflow.js中继续训练。


  • 直接使用Tensorflow.js 从头开始开发机器学习模型。



Tensorflow.js 的api和python版tensorflow api基本是对标的,因此,熟悉python版Tensorflow的同学学习Tensorflow.js 上手也应该会比较快。

Tensorflow.js 将机器学习模型部署到浏览器和Node.js端的特性,可以非常方便的做一些有趣的应用。例如,https://emojiscavengerhunt.withgoogle.com/ 使用手机摄像头识别现实世界中的表情符号;https://teachablemachine.withgoogle.com/ 可以很方便的教机器识别图像和声音。

此外,Tensorflow.js 还可以很方便的集成到小程序中。Tensorflow和微信还联合出品了一套Tensorflow.js 遇到小程序的课程。点击阅读原文进行查看






03


Tensorflow Lite



Tensorflow Lite 是一种用于移动设备,嵌入式设备和IOT设备等端的开源深度学习框架。

TensorFlow Lite不仅可以将TensorFlow深度学习模型部署在像IOS,Android等手机设备上,还可以将深度学习模型部署在IOT设备上。


对于TensorFlow Lite的使用,首先通过TFLite Converter将TensorFlow 模型导出到 TFLite Flatbuffer格式文件,然后将TFLite Flatbuffer格式文部署到设备端,在经过TFLite Interpreter在设备端进行推理。

除此之外,Tensorflow Lite涉及最多的可能就是优化了。由于移动和嵌入式等设备的运算能力比较有限,所以保持应用的资源被高效利用还是非常重要的。



最常用的优化方式可能就是量化了,该方法可以有效地将浮点权重从32字节转化为8字节,模型可以被大大减小。


当然还有一些其他的优化方式,如优化计算图中的运算符等,更多的方法在这里就不做更多介绍了。



04


Tensorflow Extented (TFX)



Tensorflow Extented (TFX) 是一个生产级别的端到端平台,它既包含offline的机器学习模型训练和验证的pipeline,也包含用来部署线上模型做预测的Tensorflow Serving。


TFX Pipeline


TFX Pipeline对机器学习问题进行了抽象,定义出以下组成部分:

  • DATA INGESTION 数据注入部分

  • DATA VALIDATION 数据验证部分

  • DATA TRANSFORM 数据转换部分

  • Trainer 模型训练部分

  • Evaluator 模型验证部分

  • 模型输出验证部分

  • 模型部署和线上推理


并且为每一个部分提供了相应的模块,如tfdv模块用来进行数据验证,tft模块用来数据转换等。


对于任何一个机器学习问题,使用者可以将其划分成以上几个部分,并使用TFX提供的模块对其进行封装。

同时,可以选择使用像Airflow或者Kubeflow这样的pipeline工具,将机器学习中的各个步骤串联起来,形成相应的机器学习pipeline。

Tensorflow Serving


Tensorflow Serving 是Google为生成环境提供的灵活、高性能机器学习模型部署和服务平台。

它的出现,可以使新算法和模型的部署的非常方便。

Tensorflow Serving 架构图

Tensorflow Serving 具有以下特性:

  • Tensorflow Serving可以同时部署多个模型或者同一个模型的不同版本

  • 可以同时支持HTTP和GRPC接口访问

  • 部署新版本模型的时候,无需对client端代码进行更改

  • 支持金丝雀和A/B Test

  • 支持batch功能,可以将收到的多个请求组成batch来进行预测;相对串行调用,这一特性可以提高数倍的性能,进而可以承受更高的流量。





关注公众号“AI工程师成长之路”, 回复"Tensorflow知多少", 获取最新最全的自制tensorflow综述PPT。


推荐阅读

AINLP年度阅读收藏清单

风云三尺剑,花鸟一床书---对联数据集和自动对联机器人

使用Encoder-Decoder模型自动生成对联的思路

逆向而行,中文轻量级预训练模型的探索之路

From Word Embeddings To Document Distances 阅读笔记

模型压缩实践系列之——bert-of-theseus,一个非常亲民的bert压缩方法

这门斯坦福大学自然语言处理经典入门课,我放到B站了

可解释性论文阅读笔记1-Tree Regularization

关于AINLP

AINLP 是一个有趣有AI的自然语言处理社区,专注于 AI、NLP、机器学习、深度学习、推荐算法等相关技术的分享,主题包括文本摘要、智能问答、聊天机器人、机器翻译、自动生成、知识图谱、预训练模型、推荐系统、计算广告、招聘信息、求职经验分享等,欢迎关注!加技术交流群请添加AINLP君微信(id:AINLP2),备注工作/研究方向+加群目的。





登录查看更多
0

相关内容

Google发布的第二代深度学习系统TensorFlow
Sklearn 与 TensorFlow 机器学习实用指南,385页pdf
专知会员服务
129+阅读 · 2020年3月15日
TensorFlow Lite指南实战《TensorFlow Lite A primer》,附48页PPT
专知会员服务
69+阅读 · 2020年1月17日
TensorFlow 2.0 学习资源汇总
专知会员服务
66+阅读 · 2019年10月9日
Tensorflow官方视频课程-深度学习工具 TensorFlow入门
深度学习与NLP
12+阅读 · 2019年3月12日
基于TensorFlow的深度学习实战
七月在线实验室
9+阅读 · 2018年4月25日
史上最全TensorFlow学习资源汇总
深度学习世界
7+阅读 · 2018年4月12日
快使用TensorFlow,哼哼哈嘿
图灵教育
5+阅读 · 2018年3月16日
教程 | 如何使用TensorFlow实现音频分类任务
机器之心
5+阅读 · 2017年12月16日
TensorFlow神经网络教程
Python程序员
4+阅读 · 2017年12月4日
Arxiv
15+阅读 · 2020年2月6日
Arxiv
7+阅读 · 2019年5月31日
Knowledge Representation Learning: A Quantitative Review
Arxiv
22+阅读 · 2018年8月30日
VIP会员
相关资讯
Tensorflow官方视频课程-深度学习工具 TensorFlow入门
深度学习与NLP
12+阅读 · 2019年3月12日
基于TensorFlow的深度学习实战
七月在线实验室
9+阅读 · 2018年4月25日
史上最全TensorFlow学习资源汇总
深度学习世界
7+阅读 · 2018年4月12日
快使用TensorFlow,哼哼哈嘿
图灵教育
5+阅读 · 2018年3月16日
教程 | 如何使用TensorFlow实现音频分类任务
机器之心
5+阅读 · 2017年12月16日
TensorFlow神经网络教程
Python程序员
4+阅读 · 2017年12月4日
Top
微信扫码咨询专知VIP会员