我试图实现泄漏Relu,问题是我必须为一个4维输入数组做4个for循环。有没有一种方法可以只使用Numpy函数来执行leaky relu?
lsmepo6l1#
以下是实现leaky_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
mo49yndu2#
离开维基百科的leaky relu条目,应该可以用一个简单的掩码函数来做到这一点。
output = np.where(arr > 0, arr, arr * 0.01)
在大于0的任何地方,你都保留这个值,在其他任何地方,你用arr * 0.01替换它。
e4eetjau3#
import numpy as np def leaky_relu(arr): alpha = 0.1 return np.maximum(alpha*arr, arr)
ttisahbt4#
def leaky_relu_forward(x, alpha): out = x out[out <= 0]=out[out <= 0]* alpha return out
bwitn5fc5#
只是为了补充,这approche:
def leaky_relu(x): return np.maximum(0.01*x, x)
比这个快2倍:
leaky_way1 = np.where(x > 0, x, x * 0.01)
5条答案
按热度按时间lsmepo6l1#
以下是实现
leaky_relu
的两种方法:mo49yndu2#
离开维基百科的leaky relu条目,应该可以用一个简单的掩码函数来做到这一点。
在大于0的任何地方,你都保留这个值,在其他任何地方,你用arr * 0.01替换它。
e4eetjau3#
ttisahbt4#
bwitn5fc5#
只是为了补充,这approche:
比这个快2倍: