Журнал тренировок в режиме реального времени Keras Повторение - Прогресс-бар печати Снова и снова в каждой эпохе? - PullRequest
0 голосов
/ 24 января 2020

В нашей задаче следующие метрики вывода; Это проблема классификации нескольких классов.

- loss, gra_loss, vow_loss, cons_loss
- gra_acc, vow_acc, cons_acc  

Мы используем Керас и очень часто сталкиваемся со следующим странным поведением.

Эпоха 1/15 2043/5021 [===========> ..................] - ETA: 9: 19 - потери: 2,7695 - потери в графе: 1,9486 - потери в общинах: 0,4557 - потери в потерях: 0,3652 - gra_a cc: 0,5240 - потери в обьях cc: 0,8583 - cons_a cc: 0,88628- ETA: 15 : - ETA: 14: 02 - потери: 4,3086 - gra_los - ETA: 12: 20 - потери: 3,5839 - gra_loss: 2,5652 - vow_loss: 0,5682 - cons_loss: 0,4505 - gra_a cc: 0,4002 - Vow_a cc: 0,821 - ETA: 12: 15 - потери: 3,5549 - Gra_loss: 2,5434 - Vow_loss: 0,5640 - Cons_loss: 0,4475 - Gra_ - ETA: 12: 04 - потери: 3,4868 - gra_ - ETA: 11: 40 - потери: 3,3581 - gra_loss: 2,3925 - vow_loss: 0,5375 - cons_loss: 0,4281 - gra_a cc: 0,4330 - vow_a cc: 0,8317 - ETA: 11: 36 - потери - E - ETA: 10: 41 - потери: 3,0747 - gra_loss: 2,1817 - Vow_loss: 0,4961 - cons_loss : - ETA: 10: 28 - потеря: 3,0218 - gra_loss: 2.1407 - vow_loss: 0,4 - ETA: 10: 12 - потеря: 2,9572 - gra_loss: 2.0909 - потеря клятвы: 0,4797 - потеря козыря: - ETA: 9: 59 - потеря: 2,9056 - потеря графа: 2,0 - ETA: 9: 49 - потеря: 2,8 - ETA - ETA: 9: 24 - потеря: 2.7843 - gra_loss: 1.9599 - vow_loss: 0.4575 - cons_loss: 0.3669 - gra

Для получения дополнительной информации здесь есть функция callback, которую я имею используемый.


    # learning rate reduction
    def scheduler(epoch):
        if epoch < 10:
            return 0.001
        else:
            return 0.001 * (0.8 ** epoch)

    # -----------------------
    # ----------------- model compiling ---------
    model.compile(

        optimizer = Adam(lr=0.001), 

        loss = {'gra' : 'categorical_crossentropy', 
                'vow' : 'categorical_crossentropy', 
                'cons': 'categorical_crossentropy'},

        loss_weights = {'gra' : 1.0,
                        'vow' : 1.0,
                        'cons': 1.0},

        metrics={'gra' : 'accuracy', 
                 'vow' : 'accuracy', 
                 'cons': 'accuracy'}
    )

    # -----------------------
    # -------------- define some function for callback --------
    def Call_Back():
        # model check point
        checkpoint = ModelCheckpoint('mod.h5', 
                                     monitor = 'val_loss', 
                                     verbose = 0, save_best_only=True, 
                                     mode = 'min',
                                     save_weights_only = True)

        lr_scheduler = LearningRateScheduler(scheduler)
        csv_logger = CSVLogger('log.csv')
        early = EarlyStopping(monitor='val_loss', 
                              mode='min', patience=30)

        # tensorboard --logdir ./Graph 
        # http://localhost:6006
        tfcallback = TensorBoard(log_dir='./Graph', histogram_freq=0,  
              write_graph=True, write_images=True)

        return [checkpoint, tfcallback, csv_logger, lr_scheduler]

Тогда просто как обычно

# calling all callbacks 
callbacks = Call_Back()

train_history = model.fit_generator(
    train_generator,
    steps_per_epoch=int(len(train_labels)/batch_size), 
    validation_data=val_generator,
    validation_steps = int(len(val_labels)/batch_size),
    verbose=1,
    epochs=epoch,
    callbacks=callbacks
)
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...