gpt4 book ai didi

python - Tensorflow:为什么 tf.get_default_graph() 不是当前图?

转载 作者:行者123 更新时间:2023-12-01 07:18:35 32 4
gpt4 key购买 nike

在此示例中,tf.get_default_graph() 指向新图表?这个新图表何时创建?为什么它不指向已经存在的

import tensorflow as tf

print('tf.__version__', tf.__version__)

graph = tf.Graph()
with graph.as_default():
x = tf.constant([[-2.25 + 4.75j], [-3.25 + 5.75j]])
y = tf.abs(x)

print(tf.get_default_graph())
print(graph)
graph == tf.get_default_graph()

输出:

tf.__version__ 1.14.0

<tensorflow.python.framework.ops.Graph object at 0x13ca5f128>
<tensorflow.python.framework.ops.Graph object at 0x13ca5f4e0>

False

最佳答案

默认情况下,TensorFlow 创建一个“根”默认图,当没有使用 .as_default() 将其他图设计为默认图时,将使用该图。您无法“设置”此基本默认图,因为它是由 TensorFlow 内部创建的,但您可以删除它并使用 tf.reset_default_graph() 将其替换为新图。

在您的示例中,您创建一个新图形graph,然后使用该图形作为默认值创建一个上下文管理器。

graph = tf.Graph()
with graph.as_default():
x = tf.constant([[-2.25 + 4.75j], [-3.25 + 5.75j]])
y = tf.abs(x)

其中的tf.constanttf.abs操作将在graph中创建,因为这是该 block 内的默认图形.

但是,一旦 block 完成,使graph成为默认图的上下文管理器也完成了,因此您将没有显式设置的默认图。这意味着默认图现在将是 TensorFlow 内部创建的图。如果您调用 tf.reset_default_graph(),然后再次调用 tf.get_default_graph(),您将看到现在得到了不同的图表。

因此,如果您想使用某些特定图形作为默认值,则始终需要使用 .as_default() 上下文来实现此目的,并且当您使用该图形时,该图形将不再是默认值出于这个。

关于python - Tensorflow:为什么 tf.get_default_graph() 不是当前图?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57824600/

32 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com