【问题标题】:How to implement the derivative of Leaky Relu in python?如何在python中实现Leaky Relu的导数?
【发布时间】:2018-06-14 15:11:46
【问题描述】:

如何在不使用 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])

提前感谢您的帮助

【问题讨论】:

  • 什么是x?已经是数组了吗?
  • TensorFlow 在你的代码中的什么位置?
  • @grovina "没有使用 Tensorflow"
  • @roganjosh 哎呀!对不起,我的错!
  • 是的,x 是 n 个 numpy 数组! @roganjosh

标签: python neural-network activation-function


【解决方案1】:

您使用的方法有效,但严格来说,您正在计算相对于损失或较低层的导数,因此将较低层的值也传递给计算导数 (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

【讨论】:

  • 非常感谢。我在定义的函数之外做这个乘法“dx * dl”......
猜你喜欢
  • 2021-01-20
  • 1970-01-01
  • 2018-03-06
  • 2021-08-23
  • 2019-07-24
  • 1970-01-01
  • 2019-10-10
  • 2015-11-13
  • 1970-01-01
相关资源
最近更新 更多