Обратный звонок для Кераса

1

Я использую Keras для одного из моих экспериментов. Когда я использую метод fit_generator я могу указать обратные вызовы, чтобы я мог реализовать их после каждой партии или эпохи.

Теперь, используя valid_generator для проверки, я делаю следующее,

Одна из некоторых других показателей, как показано ниже,

def accuracy(y_true, y_pred):
    return K.mean(K.equal(y_true, K.round(y_pred)))

Оценка,

metrics = model.evaluate_generator(my_generator(...),
                          steps=steps,
                          use_multiprocessing=True)

Здесь my_generator() yield один вход (здесь размер партии равен 1). Кроме того, у меня есть несколько типов потерь, определенных в модели. Я получаю все эти потери отлично.

Но проблема в том, что я получаю только одну оценочную метрику. Я думаю, что это общая метрика, учитывая, что все отдельные партии являются одним целым вкладом.

Как я могу определить обратный вызов или что-то в этом роде, чтобы я мог выполнять свои собственные вычисления в рамках отдельных оценок партии? (например, обратный вызов fit_generator).

Примечание. evaluate_generator valu_generator не поддерживает обратные вызовы.

Теги:
tensorflow
keras
deep-learning

1 ответ

0

Я думаю, что вы ищете обратный вызов лямбда https://keras.io/callbacks/#lambdacallback

Также возможно использовать полный пользовательский обратный вызов. Пример из документации keras:

class LossHistory(keras.callbacks.Callback):
    def on_train_begin(self, logs={}):
        self.losses = []

    def on_batch_end(self, batch, logs={}):
        self.losses.append(logs.get('loss'))
  • 0
    Да, мне нужен любой обратный звонок. Но метод оценки_генератора не поддерживает обратный вызов.
  • 1
    Ах, прости, я пропустил это. Кажется, это открытый вопрос в Керасе. github.com/keras-team/keras/issues/9484
Показать ещё 1 комментарий

Ещё вопросы

Сообщество Overcoder
Наверх
Меню