原文地址:https://blog.csdn.net/mrr1ght/article/details/81006343。 本文有删减。python
首先,tf.train.MonitorSession()从单词的字面意思理解是用于监控训练的回话,返回值是tf.train.MonitorSession()类的一个实例Object, tf.train.MonitorSession()会在下面讲。session
MonitoredTrainingSession( master='', is_chief=True, checkpoint_dir=None, scaffold=None, hooks=None, chief_only_hooks=None, save_checkpoint_secs=600, save_summaries_steps=USE_DEFAULT, save_summaries_secs=USE_DEFAULT, config=None, stop_grace_period_secs=120, log_step_count_steps=100
Args:分布式
is_chief
:用于分布式系统中,用于判断该系统是不是chief,若是为True,它将负责初始化并恢复底层TensorFlow会话。若是为False,它将等待chief初始化或恢复TensorFlow会话。checkpoint_dir
:一个字符串。指定一个用于恢复变量的checkpoint文件路径。scaffold
:用于收集或创建支持性操做的脚手架。若是未指定,则会建立默认一个默认的scaffold。它用于完成图表hooks
:SessionRunHook对象的可选列表。可本身定义SessionRunHook对象,也可用已经预约义好的SessionRunHook对象,如:tf.train.StopAtStepHook()设置中止训练的条件;tf.train.NanTensorHook(loss):若是loss的值为Nan则中止训练;chief_only_hooks
:SessionRunHook对象列表。若是is_chief== True,则激活这些挂钩,不然忽略。save_checkpoint_secs
:用默认的checkpoint saver保存checkpoint的频率(以秒为单位)。若是save_checkpoint_secs设置为None,不保存checkpoint。save_summaries_steps
:使用默认summaries saver将摘要写入磁盘的频率(以全局步数表示)。若是save_summaries_steps和save_summaries_secs都设置为None,则不使用默认的summaries saver保存summaries。默认为100save_summaries_secs
:使用默认summaries saver将摘要写入磁盘的频率(以秒为单位)。若是save_summaries_steps和save_summaries_secs都设置为None,则不使用默认的摘要保存。默认未启用。config
:用于配置会话的tf.ConfigProtoproto的实例。它是tf.Session的构造函数的config参数。stop_grace_period_secs
:调用close()后线程中止的秒数。log_step_count_steps
:记录全局步/秒的全局步数的频率Returns: 一个·MonitoredSession(·) 实例。函数
saver_hook = CheckpointSaverHook(...) summary_hook = SummarySaverHook(...) with MonitoredSession(session_creator=ChiefSessionCreator(...), hooks=[saver_hook, summary_hook]) as sess: while not sess.should_stop(): sess.run(train_op)
Args:fetch
Returns: 一个MonitoredSession 实例。spa
初始化:在建立一个MonitoredSession时,会按顺序执行如下操做:.net
Run:当调用run()函数时,按顺序执行如下操做线程