XXX takes 0 positional arguments but 1 was given

#使用nn.module和nn.parameter来完成训练循环
#代替上面的torch.nn.functional
from torch import nn
class Mnist_Logistic(nn.Module):
    def __init__():
        super().__init__()
        self.weights=nn.Parameter(torch.randn(784,10)/math.sqrt(784))
        self.bias=nn.Parameter(torch.zeros(10))
    def forward(self,xb):
        return xb @ self.weights+self.bias

实例化上面的类

model= Mnist_Logistic()

会报错
init() takes 0 positional arguments but 1 was given
错误是指__init()不需要参数,却被传递了一个参数
但是我们并没有传递参数啊
原来python中每个与类相关的方法都会自动传递实参self
因此需要将__init__()改为__init__(self)

你可能感兴趣的:(python)