in compert/model.py [0:0]
def set_hparams_(self, seed, hparams):
"""
Set hyper-parameters to (i) default values if `seed=0`, (ii) random
values if `seed != 0`, or (iii) values fixed by user for those
hyper-parameters specified in the JSON string `hparams`.
"""
default = (seed == 0)
torch.manual_seed(seed)
np.random.seed(seed)
self.hparams = {
"dim": 256 if default else
int(np.random.choice([128, 256, 512])),
"dosers_width": 64 if default else
int(np.random.choice([32, 64, 128])),
"dosers_depth": 2 if default else
int(np.random.choice([1, 2, 3])),
"dosers_lr": 1e-3 if default else
float(10**np.random.uniform(-4, -2)),
"dosers_wd": 1e-7 if default else
float(10**np.random.uniform(-8, -5)),
"autoencoder_width": 512 if default else
int(np.random.choice([256, 512, 1024])),
"autoencoder_depth": 4 if default else
int(np.random.choice([3, 4, 5])),
"adversary_width": 128 if default else
int(np.random.choice([64, 128, 256])),
"adversary_depth": 3 if default else
int(np.random.choice([2, 3, 4])),
"reg_adversary": 5 if default else
float(10**np.random.uniform(-2, 2)),
"penalty_adversary": 3 if default else
float(10**np.random.uniform(-2, 1)),
"autoencoder_lr": 1e-3 if default else
float(10**np.random.uniform(-4, -2)),
"adversary_lr": 3e-4 if default else
float(10**np.random.uniform(-5, -3)),
"autoencoder_wd": 1e-6 if default else
float(10**np.random.uniform(-8, -4)),
"adversary_wd": 1e-4 if default else
float(10**np.random.uniform(-6, -3)),
"adversary_steps": 3 if default else
int(np.random.choice([1, 2, 3, 4, 5])),
"batch_size": 128 if default else
int(np.random.choice([64, 128, 256, 512])),
"step_size_lr": 45 if default else
int(np.random.choice([15, 25, 45])),
}
# the user may fix some hparams
if hparams != "":
if isinstance(hparams, str):
self.hparams.update(json.loads(hparams))
else:
self.hparams.update(hparams)
return self.hparams