别急!看完文章再来说你懂TensorFlow

内容来源:2018 年 3 月22 日,Google软件工程师刘仁杰在“OSCAR云计算开源产业大会”进行《TensorFlow in Deep Learing Applications》演讲分享。IT 大咖说(微信id:itdakashuo)作为独家视频合作方,经主办方和讲者审阅授权发布。

阅读字数:2714 | 7分钟阅读

摘要

本次演讲首先讨论TensorFlow的一些高阶API,然后介绍最新的Eager Execution模式和解决IO瓶颈的tf.data,还有移动端解决方案 TensorFlow Lite,以及TensorFlow在google内部的应用。最后探讨如何将TensorFlow变的更好。

嘉宾演讲视频及PPT回顾:http://suo.im/4Hffv1

TensorFlow 简述

目前深度学习的网络和结构越发复杂和庞大,而TensorFlow的出现让我们可以更方便快捷的处理这些复杂的模型。它非常的灵活且支持众多的终端,能够兼容多种语言,包括Java、C++、GO、C# 等等。作为一个整套工具,TensorFlow能够很直观的查看计算的结果,提供了便捷的调试机制。目前 TensorFlow正在借助开源社区的力量进一步壮大。

TensorFlow APIS

Tf.estimator

目前TensorFlow推出了众多高阶 API 来帮助开发者更有效率的工作。以前通过TensorFlow写线性回归,需要定义众多的参数,在使用新的高级API tf.estimator后只需要使用简单的几行代码,就能将模型搭建出来。而且仅改动一行代码,原来的线性回归模型就会被转化成相对复杂的DNN模型。同时 estimator也支持分布式训练,包括模型类分布和数据类分布,当图比较大时可以将操作并行的分别在不同机器上,或者模型不切分但还是跑在不同机器上同时进行快速的更新。

Tf.layers

Estimator虽然是一个很好的切入点,但是无法满足一些用户的自定义需求。这要通过偏底层的tf.layers API解决问题,下图是个简单的例子,每个 tf.layers强制对应一行代码并将它们一层层的连在一起。

Tf.keras

keras之前在社区一直都是非常火的工具,现在keras的作者来到了google并帮助在TensorFlow中搭建了tf.Keras,方便之前习惯使用keras的用户。它的大部分特性和之前并无区别,还能和tf.layers共存。

Eager Execution

TensorFlow是以静态图的方式进行计算,将众多操作整合在一起减少资源,并且它的资源定义能够减少大量错误。虽然这种方式很不错,但是对于刚开始接触的用户来说使用并不是太方便,他们想要的是能够像编写Python一样一步步的看到结果。针对这一需求TensorFlow提供了Eager Execution模式,让用户每一步都能看到结果。

Eager Execution更多的帮助初学者理解TensorFlow的处理机制以及交互性,能够随时发现错误,并且与大部分的高阶API兼容的。

Input Pipeline:tf.data

目前大部分的应用面临的瓶颈并不是计算,现有的GPU、CPU已经能够很好的应付庞大的计算量。最主要的问题还是在IO上,于是Datasets API出现了。它使用起来非常简单,只需要事先构建TFRecordDataset,之后就可以和正常操作一样,使用repeat、shuffle、filter等。

TensorFlow Lite

出于对手机内存容量限制以及耗电量的考虑,TensorFlow推出了TensorFlow Lite,让模型变的更轻巧以便在移动端运行。

上图是TensorFlow Lite的创建过程,要明确的是使用的依旧是TensorFlow训练好的模型,然后通过Converter转换成TensorFlow Lite模式,之后就能将它部署到手机端。手机端使用TensorFlow Lite Interpreter解释器进行相应的优化,比如合并一些不必要的操作。

TensorFlow Lite的dependencies相比之前更小。它使用TOCO工具进行图的转换,将TensorFlow的图转换为TF Lite。借助到quantization可以将32位或者64位的模型转化成8位以获得更小的体量。

TensorFlow Applications in Google

早期的翻译软件是基于统计的,在没有足够语言对的情况下正确率无法保障,短语翻译效果也不太好显得生硬。借助神经网络上述问题会得到有效改善。

不光是在翻译领域,google内部的各种应用都用到了TensorFlow ,比如 YouTube和 PlayStore推荐、安卓的个性化。

AutoML

人为的搭建模型挑选网络的结构是非常麻烦的事,要耗费大量的人力物力以及机器计算力。于是我们就想到用机器学习去完成机器学习,这个想法已经得到了验证,它就是 AutoML。

Data Center Optimization

Google内部有很多的机器在运行,如何合理的控制机器开关,以及包括制冷之类的其他事项是相当有难度的问题。在引入机器学习后整个成本大幅的降低。

TensorFlow Roadmap

TensorFlow从各个层次考虑,做出优化,所想达到的唯一目标就是让用户能够更方便快捷的搭建数据模型。为此我们还会在各方面做出改进。

今后对非Python语言的会有更好的支持。同时为了让TensorFlow更加易用,我们将会提供更多的高阶API,另一方面让用户能够使用维护良好的模型直接部署应用。接下来TensorFlow还会提供对OpenCL的支持。

有问题可以在评论区讨论,以上为所有分享内容,谢谢大家!

  • 发表于:
  • 原文链接http://kuaibao.qq.com/s/20180508A1RSO300?refer=cp_1026
  • 腾讯「云+社区」是腾讯内容开放平台帐号(企鹅号)传播渠道之一,根据《腾讯内容开放平台服务协议》转载发布内容。
  • 如有侵权,请联系 yunjia_community@tencent.com 删除。

扫码关注云+社区

领取腾讯云代金券