Keras - 基于epoch的损失函数

3
我正在使用Keras框架,希望实现一个依赖于epoch的损失函数(即每个epoch的损失函数不同)。
您该如何实现?例如,可以基于 keras VAE教程提供示例吗?
感谢您的帮助。
1个回答

3
这可以通过重新编译网络来实现。权重会被保存,不会在重新编译时改变。因此,大致的操作如下所示:
for epoch in range(nb_epoch):
     loss_function = loss_for_epoch(epoch)
     model.compile(optimizer, loss_function, metrics)
     model.fit(X, y, nb_epoch=1)

在这种情况下,你的回调函数修改学习率,而我想要修改损失函数本身。 它的形式为:l(x, x_decoded) = a(x, x_decoded) + beta(t) * b(x, x_decoded),且beta(t)应每个epoch更新一次。 - sbaur
编辑了答案。 - Thomas Pinetz
确实应该可以工作。我想每个时代重新编译可能需要一些时间?但这是一个解决方案,谢谢。 - sbaur
3
看起来这种方式会更干净:https://dev59.com/K5_ha4cB1Zd3GeqP7_zk#43102987 - sbaur
1
但是重新编译不会清除Adam中的第一和第二阶矩吗? - Lugi
显示剩余2条评论

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接