Beispiel #1
0
def main():
    # image shape: N x H x W, pixel [0, 255]
    # label shape: N x 10
    with np.load(r'mnist.npz', allow_pickle=True) as f:
        x_train, y_train = f['x_train'], f['y_train']
        x_test, y_test = f['x_test'], f['y_test']

    plt.imshow(x_train[59999], cmap='gray')
    plt.show()
    print(x_train.shape, x_train[0].max(), x_train[0].min()) #(60000, 28, 28) 255 0 5
    print(x_test.shape, x_test[0].max(), x_test[0].min()) #(10000, 28, 28) 255 0 7
    
    x_train = normalize_image(x_train)
    x_test = normalize_image(x_test)
    y_train = one_hot_labels(y_train)
    y_test = one_hot_labels(y_test)

    net = LeNet()
    averagetime, _ = net.fit(x_train, y_train, x_test, y_test, epoches=10, batch_size=16, lr=1e-3)
    accuracy = net.evaluate(x_test, labels=y_test)
    print("final accuracy {}".format(accuracy))
    print(averagetime,'s')
Beispiel #2
0
        model = load_model(filename)
        initial_epoch = int(filename.split('weights.')[-1].split('-')[0])
        print('restore from ckpt, initial_echo = {0}'.format(initial_epoch))

    print(model.summary())

    tensorboard = TensorBoard(log_dir='./logs_lenet')
    # weights.{epoch:02d}-{val_loss:.2f}.hdf5 : a kind of code rule
    checkpointer = ModelCheckpoint(
        filepath='./ckpt_lenet/weights.{epoch:02d}-{val_loss:.2f}.h5',
        monitor='val_loss')

    history = model.fit(x_train,
                        y_train,
                        batch_size=batch_size,
                        epochs=epochs,
                        verbose=1,
                        callbacks=[tensorboard, checkpointer],
                        validation_data=(x_test, y_test),
                        initial_epoch=initial_epoch)

    model.save('model/mnist_lenet.h5')

    del model

    model = load_model('model/mnist_lenet.h5')

    score = model.evaluate(x_test, y_test, verbose=0)
    print('Test loss:', score[0])
    print('Test accuracy:', score[1])