Получите скорость оценки модели с Keras

Я хотел бы получить метрики скорости модели по данным валидации, чтобы сравнить различные параметры и их влияние на скорость. Например, время, потраченное каждой партией на данные проверки. Или, поскольку я использую Hyperopt, время, затрачиваемое на итерацию / пробную версию, также на данные проверки.

Есть ли способ сделать это с выходными данными fit() с validation_split>0, предиката () или valu () или атрибутами Trials в hyperopt?

Если нет, то, наверное, мне нужно будет указать временные ориентиры в коде, но это не будет для меня идеальным.

Спасибо!

1 ответ

Вы можете добиться этого, регистрируя время выполнения пакета в настраиваемом обратном вызове, вызываемом в конце каждого пакета оценки. Это выглядело бы примерно так:

from keras.callbacks import Callback
import time

class BatchTimeCallback(Callback):
    def on_train_begin(self, logs={}):
        self.batch_times = []

    def on_batch_end(self, batch, logs={}):
        self.batch_times.append(time.time())

batch_time_callback = BatchTimeCallback()

...

model.evaluate(..., callbacks=[batch_time_callback])

print(batch_time_callback.batch_times)

Обратите внимание, что это не поддерживается в последней версии (2.2.4), поэтому вам нужно использовать главную ветку.

Другие вопросы по тегам