今天凌晨,谷歌宣布推出TensorFlow的eager execution。这是一个命令式的、可定义的运行接口,它们由Python调用,可用来立即执行操作。
简单来说,eager execution有四大优势:
我们可以通过一些代码更好理解eager execution,这是很技术的问题,熟悉TensorFlow将帮你更好理解。
当启用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介绍
https://developers.googleblog.com/2017/09/introducing-tensorflow-datasets.html
谷歌研究博客地址:
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
祝你玩得开心~