我正在尝试实现泄漏的 Relu,问题是我必须为 4 维输入数组执行 4 个 for 循环。
有没有一种方法可以只使用 Numpy 函数来进行泄漏 relu?
我正在尝试实现泄漏的 Relu,问题是我必须为 4 维输入数组执行 4 个 for 循环。
有没有一种方法可以只使用 Numpy 函数来进行泄漏 relu?
这里有两种实现方法leaky_relu
:
import numpy as np
x = np.random.normal(size=[1, 5])
# first approach
leaky_way1 = np.where(x > 0, x, x * 0.01)
# second approach
y1 = ((x > 0) * x)
y2 = ((x <= 0) * x * 0.01)
leaky_way2 = y1 + y2
离开 wikipedia entry for leaky relu,应该可以用一个简单的屏蔽函数来做到这一点。
output = np.where(arr > 0, arr, arr * 0.01)
任何高于 0 的地方,都保留该值,在其他任何地方,都将其替换为 arr * 0.01。
import numpy as np
def leaky_relu(arr):
alpha = 0.1
return np.maximum(alpha*arr, arr)
def leaky_relu_forward(x, alpha):
out = x
out[out <= 0]=out[out <= 0]* alpha
return out