def eval()

in ml3/sine_regression_task.py [0:0]


def eval(task_sampler, exp_cfg, train_loss_fn, eval_loss_fn):
    seed = exp_cfg['seed']
    num_tasks = task_sampler.num_tasks_total

    np.random.seed(seed)
    torch.manual_seed(seed)

    mse = []
    nmse = []
    loss_trace = []
    x, y, _, _ = task_sampler.sample()
    for i in range(num_tasks):
        task_model_test = SineModel(in_dim=exp_cfg['model']['in_dim'],
                                    hidden_dim=exp_cfg['model']['hidden_dim'],
                                    out_dim=1)
        loss = regular_train(loss_fn=train_loss_fn, eval_loss_fn=eval_loss_fn, task_model=task_model_test,
                             x_tr=x[i], y_tr=y[i], exp_cfg=exp_cfg)
        yp = task_model_test(x[i])
        l = eval_loss_fn(yp, y[i])

        mse.append(l.item())
        nmse.append(l.item()/y[i].var())
        loss_trace.append(loss)

    res = {'nmse': nmse, 'mse': mse, 'loss_trace': loss_trace}
    return res