在学习Python建立ReLU层时,看到书上的一串代码,大意是设置一个mask作为判断输入的numpy.array中的值是否大于0的标志,若大于0则mask为False,小于等于0则mask为True,并将所有mask为True的输出值置0。代码如下:
import numpy as np
class ReLU:
def __init__(self):
self.mask = None
def forward(self, x):
self.mask = (x <= 0)
out = x.copy
out[self.mask] = 0
return out
def backward(self, dout):
dout[self.mask] = 0
return dout
re = ReLU()
x = np.array([[-1, 1], [3, -2]])
output = re.forward(x)
print(output)
但是运行之后的报错信息如下:
Traceback (most recent call last):
File "路径", line 20, in <module>
output = re.forward(x)
File "路径", line 11, in forward
out[self.mask] = 0
TypeError: 'builtin_function_or_method' object does not support item assignment
Process finished with exit code 1
请教一下如何解决问题