В моем понимании эпоха - это произвольно часто повторяющийся пробег по всему набору данных, который, в свою очередь, обрабатывается по частям, так называемые партии. После того, как каждый train_on_batch
рассчитывается потеря, веса обновляются, и следующая партия будет получать лучшие результаты. Эти потери являются показателями качества и учебного состояния моих НС.
В нескольких источниках потери рассчитываются (и печатаются) за эпоху. Поэтому я не уверен, правильно ли я это делаю.
На данный момент мой GAN выглядит так:
for epoch:
for batch:
fakes = generator.predict_on_batch(batch)
dlc = discriminator.train_on_batch(batch, ..)
dlf = discriminator.train_on_batch(fakes, ..)
dis_loss_total = 0.5 * np.add(dlc, dlf)
g_loss = gan.train_on_batch(batch,..)
# save losses to array to work with later
Эти потери относятся к каждой партии. Как мне получить их на эпоху? В качестве отступления: нужны ли мне потери для эпохи, зачем?