예제 #1
0
def get_logger(name=None):
    if EXPERIMENT is None:
        print("default logger")
        return logging.getLogger(name)
    elif EXPERIMENT.run_logger is None:
        EXPERIMENT.logger = create_basic_stream_logger()
    return EXPERIMENT.run_logger
예제 #2
0
def initialize_logging(experiment, scaffolding):
    if experiment.logger is None:
        root_logger = create_basic_stream_logger()
    else:
        root_logger = experiment.logger

    for sc_path, scaffold in scaffolding.items():
        if sc_path:
            scaffold.logger = root_logger.getChild(sc_path)
        else:
            scaffold.logger = root_logger

    return root_logger, root_logger.getChild(experiment.path)
예제 #3
0
def initialize_logging(experiment, scaffolding):
    if experiment.logger is None:
        root_logger = create_basic_stream_logger()
    else:
        root_logger = experiment.logger

    for sc_path, scaffold in scaffolding.items():
        if sc_path:
            scaffold.logger = root_logger.getChild(sc_path)
        else:
            scaffold.logger = root_logger

    return root_logger, root_logger.getChild(experiment.path)
예제 #4
0
    def __init__(self,
                 experiment,
                 database_name=None,
                 url="localhost",
                 optimizer=None,
                 prefix='runs',
                 always_inject_observer=False):

        """
        Create a new LabAssistant and connects it with a database.

        Parameters
        ----------
        experiment : sacred.Experiment
            The (sacred) experiment that is going to be optimized.
        database_name : str
            The name of the database where all information about the runs 
            are saved.
        optimizer: object, optional
            Specifies which optimizer is used to suggest a new hyperparameter
            configuration
        prefix: str, optional
            Additional prefix for the database
        always_inject_observer: bool, optional
            If true an MongoObserver is added to the experiment.
        """

        self.ex = experiment
        self.ex.option_hook(self._option_hook)

        self.db_name = database_name
        self.url = url
        self.db = None

        self.ex.logger = create_basic_stream_logger()
        self.logger = self.ex.logger.getChild('LabAssistant')
        self.prefix = prefix
        self.version_policy = 'newer'
        self.always_inject_observer = always_inject_observer
        self.optimizer_class = optimizer
        self.block_time = 1000  # TODO: what value should this be?
        # remember for which experiments we have config hooks setup
        self.observer_mapping = dict()
        # mark that we have newer looked for finished runs
        self.known_jobs = set()
        self.last_checked = None
        self.current_search_space = None
        self.mongo_observer = None
예제 #5
0
def initialize_logging(experiment, scaffolding, loglevel=None):
    if experiment.logger is None:
        if loglevel:
            try:
                loglevel = int(loglevel)
            except ValueError:
                pass
        root_logger = create_basic_stream_logger('', level=loglevel)
    else:
        root_logger = experiment.logger
        if loglevel:
            root_logger.setLevel(loglevel)

    for sc_path, scaffold in scaffolding.items():
        if sc_path:
            scaffold.logger = root_logger.getChild(sc_path)
        else:
            scaffold.logger = root_logger

    return root_logger.getChild(experiment.name)
예제 #6
0
def initialize_logging(experiment, scaffolding, log_level=None):
    if experiment.logger is None:
        root_logger = create_basic_stream_logger()
    else:
        root_logger = experiment.logger

    for sc_path, scaffold in scaffolding.items():
        if sc_path:
            scaffold.logger = root_logger.getChild(sc_path)
        else:
            scaffold.logger = root_logger

    # set log level
    if log_level is not None:
        try:
            lvl = int(log_level)
        except ValueError:
            lvl = log_level
        root_logger.setLevel(lvl)

    return root_logger, root_logger.getChild(experiment.path)
예제 #7
0
파일: initialize.py 프로젝트: IDSIA/sacred
def initialize_logging(experiment, scaffolding, log_level=None):
    if experiment.logger is None:
        root_logger = create_basic_stream_logger()
    else:
        root_logger = experiment.logger

    for sc_path, scaffold in scaffolding.items():
        if sc_path:
            scaffold.logger = root_logger.getChild(sc_path)
        else:
            scaffold.logger = root_logger

    # set log level
    if log_level is not None:
        try:
            lvl = int(log_level)
        except ValueError:
            lvl = log_level
        root_logger.setLevel(lvl)

    return root_logger, root_logger.getChild(experiment.path)