Example #1
0
    gpu_device = args.gpu

print('load MNIST dataset')
mnist = data.load_mnist_data()
mnist['data'] = mnist['data'].astype(np.float32)
mnist['data'] /= 255
mnist['target'] = mnist['target'].astype(np.int32)

N = 60000
x_train, x_test = np.split(mnist['data'],   [N])
y_train, y_test = np.split(mnist['target'], [N])

model = VAEModel(MnistM2Net())
optimizer = optimizers.Adam()
optimizer.setup(model)

state = {'max_accuracy': 0}
def progress_func(epoch, loss, accuracy, validate_loss, validate_accuracy, test_loss, test_accuracy):
    print 'epoch: {} done'.format(epoch)
    print('train    mean loss={}, accuracy={}'.format(loss, accuracy))
    if validate_loss is not None and validate_accuracy is not None:
        print('validate mean loss={}, accuracy={}'.format(validate_loss, validate_accuracy))
    if test_loss is not None and test_accuracy is not None:
        print('test     mean loss={}, accuracy={}'.format(test_loss, test_accuracy))
    if epoch % 10 == 0:
        serializers.save_hdf5(args.output + '.model', model)
        serializers.save_hdf5(args.output + '.state', optimizer)

Trainer.train(model, (x_train, y_train), x_train, args.iter, x_test=(x_test, y_test), y_test=x_test, batch_size=1000,
    gpu_device=gpu_device, optimizer=optimizer, callback=progress_func)
Example #2
0
TRAIN_NUM = 50000
VALIDATE_NUM = 10000
x_train, x_validate, x_test = np.split(mnist['data'], [TRAIN_NUM, TRAIN_NUM + VALIDATE_NUM])
y_train, y_validate, y_test = np.split(mnist['target'], [TRAIN_NUM, TRAIN_NUM + VALIDATE_NUM])

model = Classifier(MnistNet())
optimizer = optimizers.Adam()
optimizer.setup(model)

if args.input is not None:
    serializers.load_hdf5(args.input + '.model', model)
    serializers.load_hdf5(args.input + '.state', optimizer)

state = {'max_accuracy': 0}
def progress_func(epoch, loss, accuracy, validate_loss, validate_accuracy, test_loss, test_accuracy):
    print 'epoch: {} done'.format(epoch)
    print('train    mean loss={}, accuracy={}'.format(loss, accuracy))
    if validate_loss is not None and validate_accuracy is not None:
        print('validate mean loss={}, accuracy={}'.format(validate_loss, validate_accuracy))
        if validate_accuracy > state['max_accuracy']:
            state['max_accuracy'] = validate_accuracy
            serializers.save_hdf5(args.output + '.model', model)
            serializers.save_hdf5(args.output + '.state', optimizer)
    if test_loss is not None and test_accuracy is not None:
        print('test     mean loss={}, accuracy={}'.format(test_loss, test_accuracy))

Trainer.train(model, x_train, y_train, args.iter, x_validate=x_validate, y_validate=y_validate,
    x_test=x_test, y_test=y_test, batch_size=50, gpu_device=gpu_device, optimizer=optimizer,
    callback=progress_func)