title: How do Monitored Training Sessions work?
body: <p>I'm trying to understand the difference between using <code>tf.Session</code> and <code>tf.train.MonitoredTrainingSession</code>, and where I might prefer one over the other. It seems that when I use the latter, I can avoid many "chores" such as initializing variables, starting queue runners, or setting up file writers for summary operations. On the other hand, with a monitored training session, I cannot specify the computation graph I want to use explicitly. All of this seems rather mysterious to me. Is there some underlying philosophy behind how these classes were created that I'm not understanding?</p>