keras 限制输出最小最大值

keras limiting output min max value

我的问题很简单

如何使 keras 输出受边界限制 - 最小值和最大值?

有些人建议我制作一个自定义激活函数来将输出转换为最小值和最大值。我希望它成为我最后的选择。

我认为 kernel_constraint 和 bias_constraint 在带有 min_max_norm 的 Dense 层上会起作用,但事实证明它不起作用。

如果你可以牺牲激活函数的线性度,那么这很容易,你可以使用 Sigmoid 来获得 0 和 1 之间的值,然后简单地重新缩放你的输出,你需要解一些方程来找到重新缩放的参数形式为

y_in_range = (y_pred + addConst)*multConst

经过一些数学运算后,您会发现 addConst = min/(max-min)multConst = (max-min)

但是请记住,你失去了最终激活层的线性,如果你想要它是线性的,你必须制作整个功能,我知道这也是一种自定义激活,但我相信这是最接近的您将开始使用内置的 keras 函数。