首页 > 解决方案 > 有没有办法为整体损失函数添加基于 keras '自定义层'的/特定的惩罚?

问题描述

我有一个带有一些自定义层的 keras 顺序模型。现在在其中一个层中,基于该特定层的输入,我想计算一个惩罚,并且我希望将惩罚添加到优化器试图整体最小化的损失函数中。

我已经经历了tf.keras.layers.ActivityRegularization但努力弄清楚如何解决我的问题的概念。

标签: pythontensorflowkeraslossregularized

解决方案


如果你想“添加”,你只需要计算层输出/损失,并使用model.add_loss(loss_tensor)

....
loss_tensor = MyCustomLayer(...)(layer_inputs)
....

model = Model(model_inputs, model_outputs)
model.add_loss(loss_tensor)
model.compile(loss=any_normal_loss)

推荐阅读