Как я могу сохранить модель CRNN hdf5? - PullRequest
0 голосов
/ 18 апреля 2020

когда я запускаю этот код, он показывает ошибку в файле hdf5, пожалуйста, какую-нибудь помощь? Нет веса! ")

def train(self, train_dataloader, val_dataloader, epoch):

    save_dir = './save_model/crnn/'
    if not os.path.exists(save_dir): # if there is no exist, make the path
        os.makedirs(save_dir)

    model_path = save_dir + '{epoch:02d}-{val_loss:.4f}.hdf5'

    checkpoint = ModelCheckpoint(filepath=model_path,
                     monitor='val_loss', verbose=1, mode='min', period=1, save_best_only = True)
    reduce_lr = ReduceLROnPlateau(monitor = 'val_loss', factor = 0.2, patience = 10, verbose = 1, min_lr = 1e-10)

    start_time = time.time()
    self.history = self.model.fit_generator(generator=train_dataloader.generator(),
            steps_per_epoch=int(train_dataloader.total_batch // train_dataloader.batch_size),
            epochs=epoch,
            callbacks=[checkpoint, reduce_lr],
            validation_data=val_dataloader.generator(),
            validation_steps=int(val_dataloader.total_batch // val_dataloader.batch_size))
    print("\n Training --- %s sec---" %(time.time() - start_time))
    return self.history

def saved_model_use(self, save_dir = None):
    if save_dir == None:
        return print('No path')

    self.model = self.build_model(training=False)
    self.model.load_weights(save_dir)

    return print("Loaded model from '{}'".format(save_dir))
...