【发布时间】:2018-11-08 09:45:48
【问题描述】:
我知道这些激活的定义不同,但是,在阅读 ReLU's documentation 时,它会将参数 alpha 作为输入,默认为 0,并说
relu
relu(x, alpha=0.0, max_value=None) 整流线性单元。
参数
x:输入张量。 alpha:负部分的斜率。默认为零。 max_value:输出的最大值。返回
(泄漏的)整流线性单元激活:x if x > 0, alpha * x if x
还有一个带有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 传递给它?
【问题讨论】:
-
你能发布错误的跟踪吗?我无法从模型 sn-p 重现它,LeakyReLU 工作正常。
-
抱歉,我没有发布漏洞错误,因为我的目标是了解这些实现之间的差异,并且我想使用 alpha 参数调用 ReLU,即使我可以因为错误而调用 LeakyReLU (我的意思是,这个错误是避免使用 LeakyReLU 的动机)。使用 DeadReluDetector 时会出现错误,但它可能是此模块的错误(我应该对此进行更多调查)