in code/experiment_synthetic/models.py [0:0]
def __init__(self, environments, args):
best_reg = 0
best_err = 1e6
x_val = environments[-1][0]
y_val = environments[-1][1]
for reg in [0, 1e-5, 1e-4, 1e-3, 1e-2, 1e-1]:
self.train(environments[:-1], args, reg=reg)
err = (x_val @ self.solution() - y_val).pow(2).mean().item()
if args["verbose"]:
print("IRM (reg={:.3f}) has {:.3f} validation error.".format(
reg, err))
if err < best_err:
best_err = err
best_reg = reg
best_phi = self.phi.clone()
self.phi = best_phi