TensorFlow 2:检测某个节点属于哪个图
TensorFlow 2: detecting to which graph a certain node belong
我刚开始(自学)学习 TensorFlow,我决定学习我在当地图书馆找到的那本书 "Learning TensorFlow"。
不幸的是,在书中他们使用的是 TensorFlow 1.x,而我想使用 2.4 版本。
我在复制第3章的例子时遇到了一些麻烦。代码的重点是创建一个新的空计算图,创建一个节点(即在本例中为常量),然后判断该节点是否属于到默认图形或新创建的图形。
这是书中的代码,它应该可以与 TensorFlow1 一起正常工作:
import tensorflow as tf
print(tf.get_default_graph())
g = tf.Graph() # This creates a new empty graph
a = tf.constant(5) # This creates a node
print(a.graph is g)
print(a.graph is tf.get_default_graph())
我确实意识到属性 get_default_graph() 在 TensorFlow 2 中不再可用,我用 tf.compat 代替。 v1.get_default_graph() 但我仍然收到以下错误:
AttributeError: Tensor.graph is meaningless when eager execution is enabled.
非常感谢任何帮助!提前致谢!
导入tensorflow后需要禁用eager execution,如下:
import tensorflow as tf
tf.compat.v1.disable_eager_execution()
print(tf.compat.v1.get_default_graph())
g = tf.Graph() # This creates a new empty graph
a = tf.constant(5) # This creates a node
print(a.graph is g)
print(a.graph is tf.compat.v1.get_default_graph())
我刚开始(自学)学习 TensorFlow,我决定学习我在当地图书馆找到的那本书 "Learning TensorFlow"。 不幸的是,在书中他们使用的是 TensorFlow 1.x,而我想使用 2.4 版本。
我在复制第3章的例子时遇到了一些麻烦。代码的重点是创建一个新的空计算图,创建一个节点(即在本例中为常量),然后判断该节点是否属于到默认图形或新创建的图形。 这是书中的代码,它应该可以与 TensorFlow1 一起正常工作:
import tensorflow as tf
print(tf.get_default_graph())
g = tf.Graph() # This creates a new empty graph
a = tf.constant(5) # This creates a node
print(a.graph is g)
print(a.graph is tf.get_default_graph())
我确实意识到属性 get_default_graph() 在 TensorFlow 2 中不再可用,我用 tf.compat 代替。 v1.get_default_graph() 但我仍然收到以下错误:
AttributeError: Tensor.graph is meaningless when eager execution is enabled.
非常感谢任何帮助!提前致谢!
导入tensorflow后需要禁用eager execution,如下:
import tensorflow as tf
tf.compat.v1.disable_eager_execution()
print(tf.compat.v1.get_default_graph())
g = tf.Graph() # This creates a new empty graph
a = tf.constant(5) # This creates a node
print(a.graph is g)
print(a.graph is tf.compat.v1.get_default_graph())