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
Esempio n. 2
0
    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')
Esempio n. 4
0
    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
Esempio n. 5
0
    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