def _override_config(cls, overrides): config = cls.defaults() for key in overrides: if key not in config: raise KeyError("unknown config key '{}'".format(key)) config.update(overrides) config = use_attrdicts(config) return config
def __new__(cls, filepath): with open(os.path.expanduser(filepath)) as file_: definition = yaml.load(file_) definition = use_attrdicts(definition) definition.envs = list(cls._load_envs(definition.envs)) definition.algorithms = [ cls._load_algorithm(x) for x in definition.algorithms ] cls._validate_definition(definition) return definition
def algo_config(algo_cls): config = use_attrdicts(algo_cls.defaults()) if algo_cls.__name__ == 'DQN': config.replay_capacity = 100 config.batch_size = 5 config.start_learning = 10 config.network = 'network_test' if algo_cls.__name__ == 'A3C': config.learners = 2 config.network = 'network_test' if algo_cls.__name__ == 'KeyboardDoom': config.viewer = MockViewer return config
def algo_config(algo_cls): config = use_attrdicts(algo_cls.defaults()) if algo_cls.__name__ == 'DQN': config.replay_capacity = 100 config.batch_size = 3 config.start_learning = 10 config.network = 'test' config.preprocess_config = dict(frame_skip=2) if algo_cls.__name__ == 'A3C': config.learners = 2 config.network = 'test' config.preprocess_config = dict(frame_skip=2) if algo_cls.__name__ == 'KeyboardDoom': config.viewer = MockViewer if algo_cls.__name__ == 'Reinforce': config.update_every = 10 config.batch_size = 5 config.network = 'test' return config