【问题标题】:dx=(x>0)*dout what does x>0 part in this code?dx=(x>0)*dout x>0 在这段代码中有什么作用?
【发布时间】:2019-06-24 21:47:00
【问题描述】:

有关于 Relu 反向传播的 python 代码。和代码就像dx=(x>0)*doutx>0 部分是做什么的?谁能解释一下这行代码?

【问题讨论】:

  • 您是否单独尝试过?你发现了什么?
  • 您可以比较,例如,(True*3)(False*3)。也就是说,由于 __gt__() 可以返回 any 类型的对象,因此这个问题根本无法给出规范的答案。
  • 由于 Python 操作符可以被重载,如果不知道 x 的类型,就不可能确定 > 会做什么。但是,对于大多数合理的实现,(x>0) 的结果将是 TrueFalse,在数字上下文中,True 的值为 1,False 的值为 0。

标签: python deep-learning backpropagation relu


【解决方案1】:

Relu函数定义为:f(x) = max(0,x) 这意味着如果x<=0 然后f(x)=0,否则f(x)=x

所以如果x<=0dx=0,否则dx=dout

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2014-11-09
    • 1970-01-01
    • 2021-05-18
    • 2022-01-26
    • 2021-07-15
    • 1970-01-01
    • 2021-11-18
    相关资源
    最近更新 更多