Exemplo n.º 1
0
    (Xtrain, ytrain), (Xval, yval), (Xtest, ytest) = load_mnist()

    criterion = df.ClassNLLCriterion()

    def run(optim):
        progress = make_progressbar('Training with ' + str(optim), 5)
        progress.start()

        model = net()
        model.training()
        for epoch in range(5):
            train(Xtrain, ytrain, model, optim, criterion, batch_size, 'train')
            train(Xtrain, ytrain, model, optim, criterion, batch_size, 'stats')
            progress.update(epoch + 1)

        progress.finish()

        model.evaluate()
        nll, _ = test(Xtrain, ytrain, model, batch_size)
        _, nerr = test(Xval, yval, model, batch_size)

        print("Trainset NLL: {:.2f}".format(nll))
        print("Testset errors: {}".format(nerr))

    run(df.SGD(lr=1e-1))
    run(df.Momentum(lr=1e-2, momentum=0.95))
    run(df.Nesterov(lr=1e-2, momentum=0.90))
    run(df.AdaGrad(lr=1e-2, eps=1e-4))
    run(df.RMSProp(lr=1e-3, rho=0.90, eps=1e-5))
    run(df.AdaDelta(rho=0.99, lr=5e-1, eps=1e-4))
Exemplo n.º 2
0
    model.add(df.Linear(512, 9))
    model.add(df.SoftMax())
    return model


if __name__ == "__main__":
    if __package__ is None:  # PEP366
        __package__ = "DeepFried2.examples.KaggleOtto"

    train_data_x, train_data_y = load_train_data()

    train_data_x, valid_data_x, train_data_y, valid_data_y = train_test_split(
        train_data_x, train_data_y, train_size=0.85)
    model = nnet()

    criterion = df.ClassNLLCriterion()
    optimiser = df.Momentum(lr=0.01, momentum=0.9)

    for epoch in range(1, 1001):
        model.training()
        if epoch % 100 == 0:
            optimiser.hyperparams['lr'] /= 10
        train(train_data_x, train_data_y, model, optimiser, criterion, epoch,
              100, 'train')
        train(train_data_x, train_data_y, model, optimiser, criterion, epoch,
              100, 'stats')

        model.evaluate()
        validate(valid_data_x, valid_data_y, model, epoch, 100)