微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

K.in_train_phase() 在训练集和验证集中返回相同的值

如何解决K.in_train_phase() 在训练集和验证集中返回相同的值

我制作了一个自定义损失函数,它在训练集和验证集之间返回不同的值。 为了测试损失函数,我想让它在验证集中返回 0。 这是我所做的一个例子。

def custom_loss(y_true,y_pred):
  ...
  return K.in_train_phase(train_loss,0 * train_loss)

我用

训练模型
model.compile(optimizer=..,loss=custom_loss)
model.fit(X,Y,validation_split=0.2)

我用 dropout 层测试,没有 dropout 和使用

model.outputs[0]._uses_learning_phase = True

但是 loss 和 val_loss 总是一样的。 当 K.learning_phase 为 0 时返回 0,当 K.learning_phase 设置为 1 时返回正常的 loss。 如何在训练集和验证集之间设置 learning_phase?

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。