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
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')