我有一个损失函数,其中包括几个贡献,即L=L1+L2+......。我特别感兴趣的是L1、L2的个人发展......在学习过程中的训练和验证数据集。如果我通过子类化(和Functional API)生成我的模型,并通过model.fit()执行训练,我如何将可能称为“val_L1”、“Val_L2”...的验证损失添加到历史对象?谢谢你的帮助
yzxexxkh1#
这是我自己想出来的。我希望这能帮助将来同样在这个问题上挣扎的人。如果你把你的自定义模型定义为tf.keras.Model的子类,你必须通过def train_step (....):和def test_step (...):使用函数“train_step”和“test_step”。“train_step”是用来描述训练过程的函数,根据model.fit()。如果两个函数都返回:return {'L1':L1, 'L2':L2}历史记录对象将自动包含“val_L1”和“val_L2”
def train_step (....):
def test_step (...):
return {'L1':L1, 'L2':L2}
1条答案
按热度按时间yzxexxkh1#
这是我自己想出来的。我希望这能帮助将来同样在这个问题上挣扎的人。如果你把你的自定义模型定义为tf.keras.Model的子类,你必须通过
def train_step (....):
和def test_step (...):
使用函数“train_step”和“test_step”。“train_step”是用来描述训练过程的函数,根据model.fit()。如果两个函数都返回:
return {'L1':L1, 'L2':L2}
历史记录对象将自动包含“val_L1”和“val_L2”