在 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 #
另外,我想理想情况下,应该为每个折叠单独保存摘要(可能还有检查点?)。