当内核中有多个值等于最大值时该怎么办?例如,对于这些值:
array([[0., 0.],
[0., 0.]])
最大值就是0。最大指标应该是什么样的?对于所有是否为True ?max:
出现次数array([[ True, True],
[ True, True]])
或第一个最大值出现次数:
array([[ True, False],
[False, False]])
Pytorch使用第一次出现的max,而有些源使用另一个(他使用pos = np.where(result == view, 1, 0)
,它实际上记录了所有出现的max的1)。
编辑:向前道具没关系,但在反向传播,例如,如果[[1,1],[1,1]]
上游梯度,则会不同:当前节点的梯度[[1,1],[1,1]]
(发生)vs[[1,0],[0,0]]
(第一次出现)
即使经过一次反向传播,内核值也不太可能保持不变。所以它不应该是一个真正的问题,应该吗?