tf.MonitoredSession访问不带钩子的原始会话:run_step_fn与_tf_sess

时间:2018-10-26 21:13:49

标签: python tensorflow

我正在使用tf.MonitoredSession,有时会发生您想要评估某些节点但又不想继续进行训练步骤的情况,因此您不想使用Hooks来记录内容。 会话似乎被包装了几次,原始会话以嵌套的方式存储:https://github.com/tensorflow/tensorflow/issues/8425 但也可以使用_tf_sess()https://github.com/tensorflow/tensorflow/issues/11971

方法进行检索

回顾一下,我认为有两种不带钩子即可运行的方法:

  1. 使用step_fn https://www.tensorflow.org/api_docs/python/tf/train/MonitoredSession#run_step_fn
  2. 使用raw_session = sess._tf_sess()
  3. 访问原始会话

我认为方法2:如果我想摆脱困境,对我来说更直观,但是这样做是否正确呢? 我想知道为什么它是私有的,并且没有考虑像SingularMonitoredSession.raw_session()中那样有一种方法来访问原始会话吗? https://www.tensorflow.org/api_docs/python/tf/train/SingularMonitoredSession

https://github.com/tensorflow/tensorflow/blob/r1.11/tensorflow/python/training/monitored_session.py中的第1010行,我可以看到raw_session的定义正好是返回self._tf_sess(),所以我想知道为什么明确选择不让用户访问MonitoredSession中的原始会话的可能性使用sess._tf_sess()会引起一些问题?   我想知道它是否与分布式设置中的某些问题有关。

0 个答案:

没有答案