drelu[z <= ​0​] ​= ​0 mean?

问题描述 投票:0回答:1

我目前正在阅读 Harrison Kinsley 的 nnfs 书,在描述反向传播中 ReLU 函数的导数时,他使用了这段代码

drelu ​= ​dvalues.copy()
drelu[z ​<= ​0​] ​= ​0 <--------

他基本上用零替换了 drelu 的所有值,其中 z 中的相应元素小于或等于 0。第二行是什么意思/做什么,具体发生了什么(只是问一下,以便我能理解发生了什么并将其用于未来的项目)。

Python 顺便说一句

我得到了一个 np 数组,它等效于 z 数组,但每个值都是 <=0 was 0 (expected output)

python artificial-intelligence backpropagation derivative
1个回答
0
投票

z <= 0
创建一个与
z
大小完全相同的布尔数组,在这些位置为 True 为
z <= 0
,在其他地方为 False。

drelu[a_boolean_array] = 0 
仅在布尔数组为 True 的那些位置将
drelu
设置为 0。如果两个数组的大小不同,则会发生各种广播,但这不是问题。

结合这两个,可以看到

drelu[z <= 0] = 0
drelu
小于等于0的位置将
z
设置为0;

© www.soinside.com 2019 - 2024. All rights reserved.