gpt4 book ai didi

tensorflow - Keras 如何在 Relu 激活函数中使用 max_value

转载 作者:行者123 更新时间:2023-12-04 11:20:40 24 4
gpt4 key购买 nike

keras/activation.py 中定义的 Relu 函数是:

    def relu(x, alpha=0., max_value=None):
return K.relu(x, alpha=alpha, max_value=max_value)

它有一个 max_value 可用于裁剪值。现在如何在代码中使用/调用它?
我尝试了以下方法:
(一种)
    model.add(Dense(512,input_dim=1))
model.add(Activation('relu',max_value=250))
assert kwarg in allowed_kwargs, 'Keyword argument not understood:
' + kwarg
AssertionError: Keyword argument not understood: max_value

(二)
    Rel = Activation('relu',max_value=250)

同样的错误

(C)
    from keras.layers import activations
uu = activations.relu(??,max_value=250)

问题在于它期望输入出现在第一个值中。错误是“relu() 需要至少 1 个参数(给定 1 个)”

那么如何将其设为图层呢?
    model.add(activations.relu(max_value=250))

有同样的问题“relu() 需要至少 1 个参数(给定 1 个)”

如果这个文件不能用作图层,那么似乎没有办法为 Relu 指定剪辑值。这意味着这里的评论 https://github.com/fchollet/keras/issues/2119关闭提议的更改是错误的...
有什么想法吗?谢谢!

最佳答案

您可以使用 Keras 后端的 ReLU 功能。因此,首先导入后端:

from keras import backend as K

然后,您可以使用后端功能将您自己的功能作为激活传递。
这看起来像
def relu_advanced(x):
return K.relu(x, max_value=250)

然后你可以像这样使用它
model.add(Dense(512, input_dim=1, activation=relu_advanced))

或者
model.add(Activation(relu_advanced))

不幸的是,您必须对附加参数进行硬编码。
因此,最好使用一个函数,它返回您的函数并传递您的自定义值:
def create_relu_advanced(max_value=1.):        
def relu_advanced(x):
return K.relu(x, max_value=K.cast_to_floatx(max_value))
return relu_advanced

然后您可以通过以下任一方式传递您的参数
model.add(Dense(512, input_dim=1, activation=create_relu_advanced(max_value=250)))

或者
model.add(Activation(create_relu_advanced(max_value=250)))

关于tensorflow - Keras 如何在 Relu 激活函数中使用 max_value,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41252495/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com