Example #1
0
def mnist_lenet(input_shape, classes):
    model = LeNet(input_shape, classes)

    optimizer = keras.optimizers.SGD(lr=0.01)
    model.compile(optimizer=optimizer,
                  loss=keras.losses.categorical_crossentropy,
                  metrics=['accuracy'])
    return model
Example #2
0
if __name__ == '__main__':
    (x_train, y_train), (x_test, y_test) = load_mnist_data_metrics()

    initial_epoch = 0
    epochs = 20
    batch_size = 2000
    input_shape = (28, 28, 1)
    num_classes = 10

    import glob
    ckpt_filelist = glob.glob('./ckpt_lenet/*.h5')
    if len(ckpt_filelist) == 0:
        model = LeNet(input_shape, num_classes)
        model.compile(loss=losses.categorical_crossentropy,
                      optimizer=optimizers.Adadelta(),
                      metrics=['accuracy'])
    else:
        filename = ckpt_filelist[-1]
        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')