53 lines
1.5 KiB
Python
53 lines
1.5 KiB
Python
|
|
from __future__ import absolute_import
|
|
from __future__ import division
|
|
from __future__ import print_function
|
|
import os
|
|
import ruamel.yaml as yaml
|
|
|
|
def save_config(config, logdir):
|
|
"""Save a new configuration by name.
|
|
|
|
If a logging directory is specified, is will be created and the configuration
|
|
will be stored there. Otherwise, a log message will be printed.
|
|
|
|
Args:
|
|
config: Configuration object.
|
|
logdir: Location for writing summaries and checkpoints if specified.
|
|
|
|
Returns:
|
|
Configuration object.
|
|
"""
|
|
message = 'Start a new run and write summaries and checkpoints to {}.'
|
|
print(message.format(logdir))
|
|
config_path = os.path.join(logdir, 'config.yaml')
|
|
yaml.dump(config, config_path, default_flow_style=False)
|
|
return config
|
|
|
|
|
|
def load_config(logdir):
|
|
"""Load a configuration from the log directory.
|
|
|
|
Args:
|
|
logdir: The logging directory containing the configuration file.
|
|
|
|
Raises:
|
|
IOError: The logging directory does not contain a configuration file.
|
|
|
|
Returns:
|
|
Configuration object.
|
|
"""
|
|
config_path = logdir and os.path.join(logdir, 'config.yaml')
|
|
if not config_path:
|
|
message = (
|
|
'Cannot resume an existing run since the logging directory does not '
|
|
'contain a configuration file.')
|
|
raise IOError(message)
|
|
print("config_path=",config_path)
|
|
|
|
stream = open(config_path, 'r')
|
|
config = yaml.load(stream)
|
|
message = 'Resume run and write summaries and checkpoints to {}.'
|
|
print(message.format(logdir))
|
|
return config
|