tf.compat.v1.train.SingularMonitoredSession
Session-like object that handles initialization, restoring, and hooks.
tf.compat.v1.train.SingularMonitoredSession(
hooks=None, scaffold=None, master='', config=None,
checkpoint_dir=None, stop_grace_period_secs=120,
checkpoint_filename_with_path=None
)
Please note that this utility is not recommended for distributed settings. For distributed settings, please use tf.compat.v1.train.MonitoredSession. The differences between MonitoredSession and SingularMonitoredSession are:
-
MonitoredSessionhandlesAbortedErrorandUnavailableErrorfor distributed settings, butSingularMonitoredSessiondoes not. -
MonitoredSessioncan be created inchieforworkermodes.SingularMonitoredSessionis always created aschief. - You can access the raw
tf.compat.v1.Sessionobject used bySingularMonitoredSession, whereas in MonitoredSession the raw session is private. This can be used:- To
runwithout hooks. - To save and restore.
- To
- All other functionality is identical.
Example usage:
saver_hook = CheckpointSaverHook(...)
summary_hook = SummarySaverHook(...)
with SingularMonitoredSession(hooks=[saver_hook, summary_hook]) as sess:
while not sess.should_stop():
sess.run(train_op)
Initialization: At creation time the hooked session does following things in given order:
- calls
hook.begin()for each given hook - finalizes the graph via
scaffold.finalize() - create session
- initializes the model via initialization ops provided by
Scaffold - restores variables if a checkpoint exists
- launches queue runners
Run: When run() is called, the hooked session does following things:
- calls
hook.before_run() - calls TensorFlow
session.run()with merged fetches and feed_dict - calls
hook.after_run() - returns result of
session.run()asked by user
Exit: At the close(), the hooked session does following things in order:
- calls
hook.end() - closes the queue runners and the session
- suppresses
OutOfRangeerror which indicates that all inputs have been processed if theSingularMonitoredSessionis used as a context.
| Args | ||
|---|---|---|
hooks | An iterable of SessionRunHook' objects. </td> </tr><tr> <td>scaffold</td> <td> AScaffoldused for gathering or building supportive ops. If not specified a default one is created. It's used to finalize the graph. </td> </tr><tr> <td>master</td> <td>Stringrepresentation of the TensorFlow master to use. </td> </tr><tr> <td>config</td> <td>ConfigProtoproto used to configure the session. </td> </tr><tr> <td>checkpoint_dir</td> <td> A string. Optional path to a directory where to restore variables. </td> </tr><tr> <td>stop_grace_period_secs</td> <td> Number of seconds given to threads to stop afterclose()has been called. </td> </tr><tr> <td>checkpoint_filename_with_path` | A string. Optional path to a checkpoint file from which to restore variables. |
| Attributes | |
|---|---|
graph | The graph that was launched in this session. |
Child Classes
Methods
close
close()
raw_session
raw_session()
Returns underlying TensorFlow.Session object.
run
run(
fetches, feed_dict=None, options=None, run_metadata=None
)
Run ops in the monitored session.
This method is completely compatible with the tf.Session.run() method.
| Args | |
|---|---|
fetches | Same as tf.Session.run(). |
feed_dict | Same as tf.Session.run(). |
options | Same as tf.Session.run(). |
run_metadata | Same as tf.Session.run(). |
| Returns | |
|---|---|
Same as tf.Session.run(). |
run_step_fn
run_step_fn(
step_fn
)
Run ops using a step function.
| Args | |
|---|---|
step_fn | A function or a method with a single argument of type StepContext. The function may use methods of the argument to perform computations with access to a raw session. The returned value of the step_fn will be returned from run_step_fn, unless a stop is requested. In that case, the next should_stop call will return True. Example usage: with tf.Graph().as_default():
c = tf.compat.v1.placeholder(dtypes.float32)
v = tf.add(c, 4.0)
w = tf.add(c, 0.5)
def step_fn(step_context):
a = step_context.session.run(fetches=v, feed_dict={c: 0.5})
if a <= 4.5:
step_context.request_stop()
return step_context.run_with_hooks(fetches=w,
feed_dict={c: 0.1})
with tf.MonitoredSession() as session:
while not session.should_stop():
a = session.run_step_fn(step_fn)
Hooks interact with the |
| Returns | |
|---|---|
Returns the returned value of step_fn. |
| Raises | |
|---|---|
StopIteration | if step_fn has called request_stop(). It may be caught by with tf.MonitoredSession() to close the session. |
ValueError | if step_fn doesn't have a single argument called step_context. It may also optionally have self for cases when it belongs to an object. |
should_stop
should_stop()
__enter__
__enter__()
__exit__
__exit__(
exception_type, exception_value, traceback
)
© 2020 The TensorFlow Authors. All rights reserved.
Licensed under the Creative Commons Attribution License 3.0.
Code samples licensed under the Apache 2.0 License.
https://www.tensorflow.org/versions/r2.4/api_docs/python/tf/compat/v1/train/SingularMonitoredSession