动态图(Eager Execution)是TensorFlow 2.x中引入的核心特性,允许开发者以更直观的方式进行计算。以下是关键知识点:
1. 动态图特点
- 即时执行:操作立即返回具体值,无需构建计算图
- 调试友好:可直接使用Python调试工具(如pdb)
- 灵活原型设计:适合快速实验和算法开发
- 自然控制流:支持if/for等语句嵌套
2. 快速入门示例
import tensorflow as tf
# 启用动态图模式
tf.config.run_config.experimental_relaxations = True
# 直接操作张量
x = tf.constant([[1., 2.], [3., 4.]])
print(x.numpy()) # 输出: [[1. 2.][3. 4.]]
3. 与静态图对比
特性 | 动态图 | 静态图 |
---|---|---|
执行方式 | 即时执行 | 延迟执行(需要会话) |
可视化 | 更直观 | 需要额外工具(如TensorBoard) |
适用场景 | 研究、调试、小规模模型 | 生产环境、大规模分布式训练 |
4. 进阶应用
- 条件分支:
tf.cond()
实现动态控制流 - 循环结构:
tf.while_loop()
处理迭代计算 - 自动微分:直接使用
tf.GradientTape()
记录操作
建议扩展阅读:TensorFlow静态图教程 了解两种模式的差异与选择场景。