TensorFlow推出命令式、可定义的运行接口Eager Execution
来源:互联网 发布:linux中创建文件命令 编辑:程序博客网 时间:2024/05/16 09:50
安妮 编译自 Google Research Blog
量子位 出品 | 公众号 QbitAI
今天凌晨,谷歌宣布推出TensorFlow的eager execution。这是一个命令式的、可定义的运行接口,它们由Python调用,可用来立即执行操作。
简单来说,eager execution有四大优势:
立即快速调试运行错误并与Python工具集成
支持用易用Python控制流的动态模型
支持自定义和高阶梯度
几乎所有TensorFlow操作均可用
我们可以通过一些代码更好理解eager execution,这是很技术的问题,熟悉TensorFlow将帮你更好理解。
使用eager execution
当启用eager execution时,操作将立即执行并将值返回给Python,无需调用session.run()。例如,把两个矩阵相乘,写出来是这样的:
用print或Python调试程序检查中间结果也很简单:
此外,还可以用Python flow控制构建动态模型。这是考拉兹猜想(Collatz conjecture)的一个例子,用到了TensorFlow中算术运算:
在这种情况下,用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
祝你玩得开心~
— 完 —
加入社群
量子位AI社群10群开始招募啦,欢迎对AI感兴趣的同学,加小助手微信qbitbot4入群;
此外,量子位专业细分群(自动驾驶、CV、NLP、机器学习等)正在招募,面向正在从事相关领域的工程师及研究人员。
进群请加小助手微信号qbitbot4,并务必备注相应群的关键词~通过审核后我们将邀请进群。(专业群审核较严,敬请谅解)
诚挚招聘
量子位正在招募编辑/记者,工作地点在北京中关村。期待有才气、有热情的同学加入我们!相关细节,请在量子位公众号(QbitAI)对话界面,回复“招聘”两个字。
量子位 QbitAI
վ'ᴗ' ի 追踪AI技术和产品新动态
- TensorFlow推出命令式、可定义的运行接口Eager Execution
- 紧跟未来深度学习框架需求,TensorFlow 推出 Eager Execution
- TensorFlow引入了动态图机制Eager Execution
- 终于!TensorFlow引入了动态图机制Eager Execution
- 即时执行:一个由运行定义的命令式 TensorFlow 接口
- TensorFlow发布Eager,便于Debug!
- 如何用代码文件运行TensorFlow的命令
- 推出vim编辑器的命令
- C# 的@是可定义Unicode变量的
- 委托可定义的位置和使用方法
- tensorflow入门之tensorflow的运行结构
- TensorFlow发布「eager」模式,更易操作!
- tensorflow 函数接口的理解
- 使用Docker运行tensorflow进行隔离式的深度学习
- FetchType.EAGER与FetchType.LAZY的区别
- Rails宝典之第二十二式: eager loading
- R用户的福音︱TensorFlow:TensorFlow的R接口
- Thinkphp 3.0 可定义编译统存的目录
- js 执行bat文件
- 关于JdbcTemplate批量更新batchUpdate()方法的返回值为-2
- 张正友相机标定Opencv实现以及标定流程&&标定结果评价&&图像矫正流程解析(附标定程序和棋盘图)
- 人才第一!英伟达大幅扩大深度学习学院(DLI)规模
- Waymo乘客交互系统亮相,还带西方记者试乘了没司机的真·无人车
- TensorFlow推出命令式、可定义的运行接口Eager Execution
- 记录升级Android studio3.0遇到的一些问题和解决方法
- 独家 | Face++印奇:AI是场持久战,但第一阶段明年结束
- Redis集群
- Angular2学习笔记
- 网络防火墙
- java设计模式之命令模式
- HTML5选择器
- Docker学习(5)构建多容器的应用栈nodejs+redis