我的问题很简单。
我如何使keras输出受到边界(最小和最大)的限制?
有人建议我制作一个自定义激活函数,以将输出转换为最小值和最大值。我希望它是我的最后选择。
我认为带有min_max_norm的Dense层上的kernel_constraint和bias_constraint可以工作,但事实证明是行不通的。
答案 0 :(得分:1)
如果您可以牺牲激活函数的线性,那么这很容易,您可以使用Sigmoid在0和1之间取值,然后简单地重新缩放输出,您将需要解决一些方程式以找到重新缩放参数,格式为
y_in_range = (y_pred + addConst)*multConst
经过一点数学运算,您会发现addConst = min/(max-min)
和multConst = (max-min)
但是请记住,您要放松最终激活层的线性度,如果要使其线性化,则必须制作整个函数,我知道这也是一种自定义激活,但是我相信这是最接近的开始使用内置的keras函数。