【发布时间】:2022-10-05 02:18:01
【问题描述】:
我有一个损失函数,其中包括几个贡献,即 L=L1+L2+...。
我对学习期间在训练和验证数据集上的 L1、L2 的个人发展特别感兴趣。
如果我通过子类化(和功能 API)生成我的模型并通过 model.fit() 执行训练,我如何将可能称为“val_L1”、“Val_L2”的验证损失添加到历史对象?
谢谢你的帮助
【问题讨论】:
标签: keras tensorflow2.0
我有一个损失函数,其中包括几个贡献,即 L=L1+L2+...。
我对学习期间在训练和验证数据集上的 L1、L2 的个人发展特别感兴趣。
如果我通过子类化(和功能 API)生成我的模型并通过 model.fit() 执行训练,我如何将可能称为“val_L1”、“Val_L2”的验证损失添加到历史对象?
谢谢你的帮助
【问题讨论】:
标签: keras tensorflow2.0
我自己想通了。我希望我将来能在这个问题上帮助别人。
如果您将自定义模型定义为 tf.keras.Model 的子类,则必须通过以下方式使用函数“train_step”和“test_step”
def train_step (....): 和 def test_step (...):。
“train_step”是用于根据 model.fit() 描述训练过程的函数。
如果两个函数都返回:
return {'L1':L1, 'L2':L2}
历史对象将自动包含“val_L1”和“val_L2”
【讨论】: