使用Python建立ReLU层时遇到的问题

在学习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

请教一下如何解决问题

out = x.copy这一句copy后面少了小括号,应该是out = x.copy()