Получите скорость оценки модели с 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), поэтому вам нужно использовать главную ветку.