Вот фрагмент кода:
Код: Выделить всё
history = model.fit(X, y, batch_size=32, shuffle=True, epochs=1, verbose=1)
Output: 4050/4050 ━━━━━━━━━━━━━━━━━━━━ 66s 13ms/step - loss: 290.9271
print(history.history) # Output: {'loss': [56.9575309753418]}
Код: Выделить всё
batch_losses = []
collect_losses = LambdaCallback(on_batch_end=lambda batch, logs: batch_losses.append(logs['loss']))
model.fit(X, y, batch_size=32, shuffle=True, epochs=1, verbose=1, callbacks=[collect_losses])
batch_losses_array = np.array(batch_losses, dtype=np.float32)
Код: Выделить всё
print(float(np.mean(batch_losses_array))) # Output: 290.98486328125
print(batch_losses_array[-1]) # Output: 56.95753
Все мои данные находятся в np.float32. Версия TensorFlow — 2.18.0. Размеры партий одинаковы (32), что означает, что конечная партия не будет меньшего размера; следовательно, средневзвешенное и простое среднее должны быть идентичны.
Мои вопросы:
[*]Является ли History.history[ 'loss'] должен возвращать потери последней партии или средние потери за эпоху?
[*]Как я могу напрямую получить заявленное значение потерь после обучения?
< /ol>
Заранее благодарим за любую информацию!
Подробнее здесь: https://stackoverflow.com/questions/791 ... -model-fit
Мобильная версия