不止一个有什么意义tf。图形?

2024-04-19 04:58:41 发布

您现在位置:Python中文网/ 问答频道 /正文

拥有多个tf.Graph有什么意义?你知道吗

我特别考虑机器学习模型的超参数调整,其中一个模型要么是一个单独的图,要么几个模型被定义为同一个图中不相连的组件。你知道吗

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

只使用tf.reset_default_graph(); sess = tf.InteractiveSession()并在代码库的其余部分同时忽略tf.Graphtf.Session似乎更简单。我错过了什么?你知道吗


Tags: 对象模型机器内容参数定义sessiontf
1条回答
网友
1楼 · 发布于 2024-04-19 04:58:41

如果只有一个会话,那么就没有必要使用多个图。会话链接到一个图,因此如果您尝试从另一个图运行元素,您将得到xyz is not an element of this graph错误。你知道吗

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

local_session = tf.Session("", graph=local_graph)
remote_session = tf.Session("grpc://...", graph=remote_graph)

但是,您可能会对同一个tf.Graph对象使用两个会话,但是TF_ExtendGraph调用中对该对象will result的任何添加都会在下一个session.run调用,即使该会话不需要。换句话说,共享图形意味着在修改图形时向所有会话发送<;=2GB的图形描述。你知道吗

相关问题 更多 >