Tensorflow图,用于交叉验证的会话管理

时间:2018-06-04 13:12:51

标签: session tensorflow graph cross-validation

在Tensorflow中实现交叉验证时,管理(初始化,关闭,重置)会话和图表的正确方法是什么?

我应该为每个折叠重置会话和图表,还是在整个过程中保持单个会话更好/可能?进行后者的一个优点是资源在整个过程中受到约束,例如,防止在同一台机器上运行的某些不相关的进程声称GPU,而我正在处理/保存折叠之间的结果。

是否足以保持相同的图形/会话,只需通过以下方式重新初始化参数:

with tf.Graph().as_default():
    with tf.Session() as sess:
        # define model here #
        for fold in folds:
            init = tf.group(tf.global_variables_initializer(), tf.local_variables_initializer())
            sess.run(init)
            # train model here #

另外,我想理想的摘要(以及可能的检查点?)应该分别保留每个折叠。

1 个答案:

答案 0 :(得分:0)

我更喜欢创建一个会话并在我需要的时候使用它,这在速度和性能方面要好得多,后来如果我们关闭会话,那么我们就可以恢复资源了。而且,如果我们使用allow_growth config为True,那么其他程序也可以使用这些资源。