keras 如何在TensorFlow模型中动态改变历元之间的损失函数

7uhlpewt  于 2023-04-21  发布在  其他
关注(0)|答案(1)|浏览(123)

我想为每个替代epoch或每5个epoch更改损失函数。我尝试使用本文中建议的损失 Package 方法。这不起作用。它永远保持current_epoch值初始化,并且更新的值不会进入损失 Package 函数,尽管该变量在on_epoch_end回调中为每个epoch结束更新。
另外我尝试在on_epoch_end回调中使用model.add_loss方法,也是不行的,它只接受model.compile中初始化的损失函数,不接受model.add_loss中传入的损失函数。

qyswt5oh

qyswt5oh1#

只需多次编译模型:

for epoch in range(num_epochs):
    if epoch % 2 == 0:
        current_loss_fn = loss_fn_1
    else:
        current_loss_fn = loss_fn_2
    model.compile(optimizer=current_optimizer, loss=current_loss_fn)
    train...

相关问题