pytorch Network.parameters() missing 1 required positional argument: 'self'
There's a problem when I call Network.parameters() in pytorch in this line in my main function:
optimizer = optim.SGD(Network.parameters(), lr=0.001, momentum=0.9)

I get the error code:

TypeError: parameters() missing 1 required positional argument: 'self'

My network is defined in this class

class Network(nn.Module):
def __init__(self):
    super(Network, self).__init__()
    self.conv1 = nn.Conv2d(1, 32, 5)
    self.pool = nn.MaxPool2d(2, 2)
    self.conv2 = nn.Conv2d(32, 64, 5)
    self.pool2 = nn.MaxPool2d(2, 2)
    self.conv3 = nn.Conv2d(64, 64, 5)
    self.pool2 = nn.MaxPool2d(2, 2)
    self.fc1 = nn.Linear(64 * 5 * 5, 512)
    self.fc2 = nn.Linear(512, 640)
    self.fc3 = nn.Linear(640, 3756)

def forward(self, x):
    x = self.pool(F.relu(self.conv(x)))
    x = self.pool(F.relu(self.conv2(x)))
    x = self.pool(F.relu(self.conv3(x)))
    x = x.view(-1, 64 * 5 * 5)
    x = F.relu(self.fc1(x))
    x = F.relu(self.fc2(x))
    x = self.fc3(x)
    return x


Pretty sure that I imported all torch modules correctly.
Any ideas of what I'm doing wrong here?

Thank you!

When doing Network.parameters() you are calling the static method parameters.

But, parameters is an instance method.

So you have to instansiate Network before calling parameters.

network = Network()
optimizer = optim.SGD(network.parameters(), lr=0.001, momentum=0.9)


Or, if you only needs Network first this particular line:

optimizer = optim.SGD(Network().parameters(), lr=0.001, momentum=0.9)

