静态图
是指在图构建完成后,在模型运行时无法进行修改。
“图”==模型。
图建好之后,运行前需要freeze,然后进行一些优化,例如图融合等,最后启动session根据之前构建的静态图进行计算**,计算过程无法对静态图进行更改**。
动态图
和静态图对应,在模型运行过程中可以对图进行修改。TF2.0默认为动态图,即eager模式。
Session没了
TF不用在session中才能输出中间参数值了。
如何判断使用了静态图还是动态图?
如果要使用动态图,也即为eager机制,需要在代码开始加上tf.enable_eager_execution()
import tensorflow as tf
tf.enable_eager_execution()
然后可以用下面的语句来验证eager是否成功打开:
tf.executing_eagerly()