Ejemplo n.º 1
0
    pred_valid = neural_net.forward(x_valid)
    valid_error = mse_loss(pred_valid, target_valid) + regularization * l2_norm
    valid_over_epoch.append(valid_error.data[0])

    for param in neural_net.parameters():
        param.grad *= alpha
    loss.backward()
    for param in neural_net.parameters():
        param.data -= learning_rate * param.grad.data

    if epoch % animator.EPOCHS_PER_FRAME == 0:
        print('Epoch {:4d}, loss: {:6.5f}, validation error: {:6.5f}'.format(
            epoch, loss.data[0], valid_error.data[0]))
        pred_train_list = pp.revert(pred_train).data.tolist()
        pred_valid_list = pp.revert(pred_valid).data.tolist()
        animator.add_epoch(epoch, pred_train_list, pred_valid_list)

    set_global_min, stop_flag = early_stopper.check_for_early_stop(
        valid_error.data[0])
    dma_over_epoch.append(early_stopper.dma)

    if set_global_min:
        for optimal, param in zip(optimal_params, neural_net.parameters()):
            optimal = param

    if stop_flag in EarlyStop.BREAK_FLAGS:

        for optimal, param in zip(optimal_params, neural_net.parameters()):
            param = optimal

        print('Epoch {:4d}, loss: {:6.5f}, validation error: {:6.5f}'.format(