Beispiel #1
0
    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')

    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)