参考文章:https://zhuanlan.zhihu.com/p/67192636
一、基本概念有三种计算图的构建方式:静态计算图,动态计算图,以及Autograph.
-
在TensorFlow1.0时代,采用的是静态计算图,需要先使用TensorFlow的各种算子创建计算图,然后再开启一个会话Session,显式执行计算图。
-
而在TensorFlow2.0时代,采用的是动态计算图,即每使用一个算子后,该算子会被动态加入到隐含的默认计算图中立即执行得到结果,而无需开启Session。
-
如果需要在TensorFlow2.0中使用静态图,可以使用@tf.function装饰器将普通Python函数转换成对应的TensorFlow计算图构建代码。运行该函数就相当于在TensorFlow1.0中用Session执行代码。使用tf.function构建静态图的方式叫做 Autograph.
在TF 2.x中, 由于默认为动态图, 计算会直接被执行, 也就是说, 我们不需要再进行以下操作:
- 定义计算图
- 会话执行
- 参数初始化
- 用scope定义参数分享
- 用tf.control_dependencies来声明节点的非直接依赖
我们可以像写普通python代码(or pytorch)一样, 写了就执行:
a