В моем коде у меня есть две пользовательские функции потери. Одним из них является отрицательное логарифмическое правдоподобие (NLL), другим - дивергенция KL (KLD).
Каждый из них рассчитывается отдельно и добавляется к tf.keras.Model
с использованием model.add_loss(NLL)
и model.add_loss(KLD)
. * 1006. *
Для первых x
эпох я хочу включить только NLL, но после этого я хочу, чтобы KLD постепенно увеличивал свое влияние (отжиг). Моя желаемая структура:
weight_KL {epoch 00 -> 09} == 0.0
weight_KL {epoch 10 -> 19} += 0.1
weight_KL {epoch 20 -> ..} == 1.0
Способ, который я вижу, состоит в том, что есть две функции потерь, добавленные вместе с весом, который изменяется за каждую эпоху:
total_loss = NLL + weight_KL * KLD
Есть ли способ выполнить sh это в TensorFlow 2?