如何在python中实现Leaky Relu的派生?

时间:2018-01-04 20:12:57

标签: python neural-network activation-function

如何在不使用Tensorflow的情况下在Python中实现Leaky ReLU的派生?

有比这更好的方法吗?我希望函数返回一个numpy数组

def dlrelu(x, alpha=.01):
     # return alpha if x < 0 else 1

     return np.array ([1 if i >= 0 else alpha for i in x])

提前感谢您的帮助

1 个答案:

答案 0 :(得分:3)

您使用的方法有效,但严格来说,您正在计算与损失或较低层相关的导数,因此从下层传递值以计算导数(dl / dx)可能也是明智之举。

无论如何,你可以避免使用对大x更有效的循环。这是一种方法:

def dlrelu(x, alpha=0.01):
  dx = np.ones_like(x)
  dx[x < 0] = alpha
  return dx

如果您从较低层传递了错误,它看起来像这样:

def dlrelu(dl, x, alpha=0.01):
  """ dl and x have same shape. """
  dx = np.ones_like(x)
  dx[x < 0] = alpha
  return dx*dl