TensorFlow推出命令式、可定义的运行接口Eager Execution

简介:
本文来自AI新媒体量子位(QbitAI)

今天凌晨,谷歌宣布推出TensorFlow的eager execution。这是一个命令式的、可定义的运行接口,它们由Python调用,可用来立即执行操作。

简单来说,eager execution有四大优势:

  • 立即快速调试运行错误并与Python工具集成
  • 支持用易用Python控制流的动态模型
  • 支持自定义和高阶梯度
  • 几乎所有TensorFlow操作均可用

我们可以通过一些代码更好理解eager execution,这是很技术的问题,熟悉TensorFlow将帮你更好理解。

使用eager execution

当启用eager execution时,操作将立即执行并将值返回给Python,无需调用session.run()。例如,把两个矩阵相乘,写出来是这样的:

640?wx_fmt=png&wxfrom=5&wx_lazy=1

用print或Python调试程序检查中间结果也很简单:

640?wx_fmt=png&wxfrom=5&wx_lazy=1

此外,还可以用Python flow控制构建动态模型。这是考拉兹猜想(Collatz conjecture)的一个例子,用到了TensorFlow中算术运算:

640?wx_fmt=png&wxfrom=5&wx_lazy=1

在这种情况下,用tf.constant(12)张量对象(即代码中的Tensor对象)将把所有数学运算推广到张量运算,并且所有返回值都是张量。

编写代码新变化

使用eager execution应该对当前TensorFlow用户来说更直观了。原因有多种,比如里面只有少数eager-specific API,并且大多数现有API和操作都支持eager。值得注意的还有以下几点:

  • 如果你还没用过tf.data做输入处理,应该着手学习一下了。它更容易使用,并且通常处理速度更快。

tf.data介绍

https://developers.googleblog.com/2017/09/introducing-tensorflow-datasets.html

  • 在使用如tf.layer.Conv2D()或Keras等面向对象的层时,它们可以显式存储变量。
  • 对大多数模型来说,你可以编写代码让它作用于eager execution和构建计算图。也有例外情况,比如用Python控制流根据输入改变计算。
  • 一旦调用了tfe.enable_eager_execution(),就无法关闭。如要获取计算图行为,需要启动新的Python会话。

参考资料及下载

谷歌研究博客地址:

https://research.googleblog.com/2017/10/eager-execution-imperative-define-by.html

GitHub代码地址:

https://github.com/tensorflow/tensorflow/blob/master/tensorflow/contrib/eager/README.md

代码使用手册:

https://github.com/tensorflow/tensorflow/blob/master/tensorflow/contrib/eager/python/g3doc/guide.md

祝你玩得开心~

本文作者:安妮
原文发布时间:2017-11-01
相关文章
|
分布式计算 并行计算 Hadoop
Tensorflow目标检测接口配合tflite量化模型(二)
Tensorflow目标检测接口配合tflite量化模型
319 0
Tensorflow目标检测接口配合tflite量化模型(二)
|
XML 存储 TensorFlow
Tensorflow目标检测接口配合tflite量化模型(一)
Tensorflow目标检测接口配合tflite量化模型
157 0
Tensorflow目标检测接口配合tflite量化模型(一)
|
Ubuntu Shell TensorFlow
TensorFlow Lite开发系列之C++接口解析(二)
TensorFlow Lite开发系列之C++接口解析
248 0
TensorFlow Lite开发系列之C++接口解析(二)
|
Linux TensorFlow 算法框架/工具
TensorFlow Lite开发系列之python接口解析(一)
环境: tensorflow2.x, 一定要使用linux系统,后期转换模型windows会出现bug
220 0
TensorFlow Lite开发系列之python接口解析(一)
|
XML 人工智能 TensorFlow
OpenVINO运行Tensorflow模型
OpenVINO运行Tensorflow模型
OpenVINO运行Tensorflow模型
|
存储 人工智能 TensorFlow
Tensorflow将模型导出为一个文件及接口设置
Tensorflow将模型导出为一个文件及接口设置
|
PyTorch TensorFlow 算法框架/工具
斯坦福tensorflow教程(四) 贪婪执行Eager Execution
TensorFlow饱受诟病的痛点就是只支持静态图模型。也就是说,在处理数据前必须预先定义好一个完整的模型。如果数据非常规整,那还好。但实际工程和研究项目中的数据,难免有一些边角的情况。很多项目,其实需要大量实验才能选择正确的图模型。这就很痛苦了。因此,很多项目转而采用了PyTorch等支持动态图模型的框架,以便在运行程序的时候动态修正模型。
92 0
斯坦福tensorflow教程(四) 贪婪执行Eager Execution
|
机器学习/深度学习 存储 人工智能
TensorFlow 2.0将把Eager Execution变为默认执行模式,你该转向动态计算图了
8 月中旬,谷歌大脑成员 Martin Wicke 在一封公开邮件中宣布,新版本开源框架——TensorFlow 2.0 预览版将在年底之前正式发布。今日,在上海谷歌开发者大会上,机器之心独家了解到一个重大的改变将会把 Eager Execution 变为 TensorFlow 默认的执行模式。这意味着 TensorFlow 如同 PyTorch 那样,由编写静态计算图全面转向了动态计算图。
177 0
TensorFlow 2.0将把Eager Execution变为默认执行模式,你该转向动态计算图了
|
机器学习/深度学习 人工智能 并行计算
在Docker Compose上使用GPU运行TensorFlow
容器化和AI是目前开发的大趋势。理想情况下,容器化可以将环境无缝迁移,将配置环境的成本无限降低:但是在容器中配置CUDA并运行TensorFlow一向是个难题。对于初学者以及没有深度学习工作站的用户,AWS和Azure推出了带独立显卡的云服务:但是按需实例价格不便宜,竞价式实例价格公道然而虚拟机不能重启,导致不能按需挂载硬盘并保存工作状态,用户需要编写大量代码时刻对虚拟机进行监控并对结果进行异地保存。Deep Systems对这个问题进行了研究并给出了很好的建议。 用户首先需要配置 CUDA:Deep Systems推荐使用runtime 安装,以免在升级后污染依赖环境。 安装 Dock
414 0
|
TensorFlow 算法框架/工具 异构计算
成功解决:Win系统下的Tensorflow使用CPU而不使用GPU运行加速
成功解决:Win系统下的Tensorflow使用CPU而不使用GPU运行加速
成功解决:Win系统下的Tensorflow使用CPU而不使用GPU运行加速