拥有多个tf.Graph
有什么意义?你知道吗
我特别考虑机器学习模型的超参数调整,其中一个模型要么是一个单独的图,要么几个模型被定义为同一个图中不相连的组件。你知道吗
我知道拥有多个tf.Session
是不好的,因为任务调度无法正确完成,所以我假设在一个会话中有多个tf.Graph
对象是可能的(尽管tf.Session(graph=...)
会有所不同),但是这样做的意义何在,而不是让多个组件具有类似tf.variable_scope
的内容呢?主要的问题是用tf.train.Saver
保存什么,在TensorBoard中可视化,等等?哪种方法更可取?模型应该共享一个图还是每个模型都有自己的超参数调整图?你知道吗
只使用tf.reset_default_graph(); sess = tf.InteractiveSession()
并在代码库的其余部分同时忽略tf.Graph
和tf.Session
似乎更简单。我错过了什么?你知道吗
如果只有一个会话,那么就没有必要使用多个图。会话链接到一个图,因此如果您尝试从另一个图运行元素,您将得到
xyz is not an element of this graph
错误。你知道吗当您有多个会话时,有多个图形是有意义的。例如,假设您正在使用分布式TensorFlow,但也希望在本地进行一些计算。你可以这样做
但是,您可能会对同一个
tf.Graph
对象使用两个会话,但是TF_ExtendGraph
调用中对该对象will result的任何添加都会在下一个session.run
调用,即使该会话不需要。换句话说,共享图形意味着在修改图形时向所有会话发送<;=2GB的图形描述。你知道吗相关问题 更多 >
编程相关推荐