0%

【CS20-TF4DL】04 Eager Execution

现在我们已经实现了两个简单的 TF 模型,一个是用于预测预期寿命的线性回归模型,一个是用来识别手写数字的 logistic 回归模型。我们还非常清楚使用 TF 的两个步骤(组装 graph 然后执行)。那么,如果我们想像使用 python 一样使用 TF 可以吗?答案是肯定的。


更新历史

  • 2019.08.06: 完成初稿

Eager Execution

Eager execution 是一个类似 Numpy 的库,支持 GPU 加速和自动微分,在 TF 1.5 引入。我们可以用可交互的方式进行 TF 编程,可以使用更多 python 特性,调试也会更加轻松。用法很简单,两行代码就可以:

1
2
import tensorflow as tf
tf.enable_eager_execution()

使用 Eager Execution 的话,不再需要担心下面的事情:

  • placeholders
  • sessions
  • control dependencies
  • lazy loading
  • {name, variable, op} scopes

直接就可以开始计算!

1
2
3
x = [[2.]]
m = tf.matmul(x, x)
print(m)

其他更多代码可以参考 8_eager_execution.py

啥时候最适合用 Eager Execution 呢?

  • 研究人员,想要灵活的框架,可以直接用 python 的 control flow
  • 开发新的模型时,更加便于调试
  • Tensorflow 新手,可以更好的尝试 API

下期预告

  • 变量共享 Variable sharing
  • 管理实验 Manage experiments
  • 自动微分 Autodiff

参考资料