Python 什么';有多个tf.Graph的意义是什么?

Python 什么';有多个tf.Graph的意义是什么?,python,tensorflow,Python,Tensorflow,拥有多个tf.Graph有什么意义 我特别考虑机器学习模型的超参数调优,其中一个模型本身就是一个图,或者多个模型被定义为同一个图中的断开连接的组件 我知道有多个tf.Session是不好的,因为任务调度无法正确完成,所以我假设一个Session中可能有多个tf.Graph对象(尽管tf.Session(Graph=…)会有所不同)但是这样做的意义何在,而不是让几个组件使用类似于tf.variable\u scope的东西呢?这主要是一个用tf.train.Saver保存什么、在TensorBoa

拥有多个
tf.Graph
有什么意义

我特别考虑机器学习模型的超参数调优,其中一个模型本身就是一个图,或者多个模型被定义为同一个图中的断开连接的组件

我知道有多个
tf.Session
是不好的,因为任务调度无法正确完成,所以我假设一个Session中可能有多个
tf.Graph
对象(尽管
tf.Session(Graph=…)
会有所不同)但是这样做的意义何在,而不是让几个组件使用类似于
tf.variable\u scope
的东西呢?这主要是一个用
tf.train.Saver
保存什么、在TensorBoard中可视化等等的问题吗?哪种方法更可取?模型应该共享一个图还是每个模型都有自己的超参数调优图


使用
tf.reset_default_graph()似乎更简单;sess=tf.InteractiveSession()
并在代码库的其余部分忘记
tf.Graph
tf.Session
。我遗漏了什么?

如果您只有一个会话,那么使用多个图表是没有意义的。会话链接到一个图,因此如果您尝试从另一个图运行一个元素,您将得到
xyz不是此图的元素
错误

当您有多个会话时,有多个图形是有意义的。例如,假设您正在使用分布式TensorFlow,但也希望在本地进行一些计算。你可以这样做

local_session = tf.Session("", graph=local_graph)
remote_session = tf.Session("grpc://...", graph=remote_graph)
但是,您可能会对相同的
tf.Graph
对象使用两个会话,但是在
tf_ExtendGraph
中对该对象的任何添加都会在下一个
会话中调用。即使该会话不需要运行该会话,也可以运行该会话。换句话说,共享图形意味着发送