我知道这些激活的定义不同,但是,在阅读ReLU's documentation时,它会将参数alpha作为输入,默认为0,并说
RELU
relu(x,alpha = 0.0,max_value = None)整流线性单位。
参数
x :输入张量。 alpha:负面部分的斜率。默认为零。 max_value:输出的最大值。返回
(泄漏的)整流线性单元激活:x,如果x> 0,alpha * x if x< 0.如果定义了max_value,则结果将被截断为此值。
还有一个带similar documentation的LeakyReLU,但作为其他模块的一部分(高级激活)
它们之间有区别吗?以及我如何导入relu以使用alpha实例化它?
from keras.layers.advanced_activations import LeakyReLU
..
..
model.add(Dense(512, 512, activation='linear'))
model.add(LeakyReLU(alpha=.001)) # using Relu insted of LeakyRelu
请注意,使用LeakyReLU
时,我收到以下错误:
AttributeError: 'LeakyReLU' object has no attribute '__name__'
但是当我使用ReLU时,它可以工作:
model.add(Activation('relu')) # This works correctly but can't set alpha
总结:什么是差异?如何导入ReLU以通过aplha?
答案 0 :(得分:2)
就实现而言,他们call使用相同的后端函数K.relu
。区别在于relu
是激活函数,而LeakyReLU是在Layer
下定义的keras.layers
。所以区别在于你如何使用它们。对于激活函数,您需要环绕或使用内部层Activation
,但LeakyReLU为您提供了具有alpha值的该函数的快捷方式。