def make_configs(self): config = Config() config.add_item(name='iter', val=30) config.add_item(name='hidden_sizes', val=[64, 32, 16]) config.add_random_eps(name='lr', base=10, low=-6, high=0, num_sample=10) config.add_random_continuous(name='values', low=-5, high=5, num_sample=5) config.add_random_discrete(name='select', list_val=[43223, 5434, 21314], num_sample=10, replace=True) configs = config.make_configs() return configs
def make_configs(self): config = Config() config.add_grid(name='use_ConvVAE', val=[True, False]) config.add_item(name='num_epochs', val=100) config.add_item(name='cuda', val=True) config.add_item(name='seed', val=1) config.add_item(name='batch_size', val=128) config.add_item(name='log_interval', val=100) configs = config.make_configs() return configs
def test_config(): config = Config() config.add_item(name='algo', val='RL') config.add_item(name='iter', val=30) config.add_item(name='hidden_sizes', val=[64, 32, 16]) config.add_grid(name='cuda_num', val=[1, 2, 3]) config.add_random_eps(name='lr', base=10, low=-6, high=0, num_sample=10) config.add_random_continuous(name='values', low=-5, high=5, num_sample=5) config.add_random_discrete(name='select', list_val=[43223, 5434, 21314], num_sample=10, replace=True) configs = config.make_configs() assert len(configs) == 1500 assert np.alltrue([config['ID'] == i for i, config in enumerate(configs)]) assert np.alltrue([config['algo'] == 'RL' for config in configs]) assert np.alltrue(['iter' in config for config in configs]) assert np.alltrue( [config['hidden_sizes'] == [64, 32, 16] for config in configs]) assert np.alltrue([config['cuda_num'] in [1, 2, 3] for config in configs]) assert np.alltrue( [config['lr'] > 0 and config['lr'] < 1 for config in configs]) assert np.alltrue([ config['values'] >= -5 and config['values'] < 5 for config in configs ]) assert np.alltrue( [config['select'] in [43223, 5434, 21314] for config in configs]) with pytest.raises(AssertionError): config.add_grid(name='wrong', val='yes')
def make_configs(self): config = Config() # General configurations config.add_item(name='cuda', val=True) config.add_item(name='cuda_id', val=1) # Random seeds # Generated by: np.random.randint(0, np.iinfo(np.int32).max, 10) config.add_grid(name='seed', val=[ 1284204222, 1079618558, 310837894, 1130644153, 2099771862, 1234806135, 92464293, 146053987, 1140885110, 988661500 ]) # Algorithm configuration config.add_item(name='algo:lr', val=1e-3) config.add_item(name='algo:gamma', val=0.99) config.add_item(name='algo:use_lr_scheduler', val=True) config.add_item(name='env:id', val='CartPole-v1') # Engine configuration config.add_item(name='train:iter', val=4000) config.add_item(name='train:N', val=1) config.add_item(name='train:T', val=500) config.add_item(name='eval:N', val=10) config.add_item(name='eval:T', val=500) # Agent configuration config.add_grid(name='agent:standardize', val=[True, False]) config.add_item(name='agent:max_grad_norm', val=0.5) # gradient clipping with max gradient norm config.add_item(name='agent:value_coef', val=0.5) # Coefficient for learning value function config.add_item(name='agent:entropy_coef', val=0.01) # Coefficient for maximize policy entropy # Logging configurations config.add_item(name='log:interval', val=100) config.add_item(name='log:dir', val='logs') configs = config.make_configs() return configs
def make_configs(self): config = Config() config.add_grid(name='cuda', val=[True]) config.add_item(name='seed', val=1) config.add_item(name='lr', val=1e-2) config.add_item(name='gamma', val=0.995) config.add_item(name='standardize_r', val=True) config.add_item(name='train_iter', val=1000) config.add_item(name='N', val=1) config.add_item(name='T', val=300) config.add_item(name='use_value', val=True) # True for actor-critic config.add_item(name='entropy_coef', val=0.0) config.add_item(name='value_coef', val=0.0) config.add_item(name='max_grad_norm', val=None) config.add_item(name='log_interval', val=100) configs = config.make_configs() return configs