Ahh yes that makes sense!

I assume you would like to pass the input first to  self.conv1 ,  self.pool  etc.

For the above, I am unsure if my method is accurate in terms of syntax:

def forward(self, x):
out = x.reshape(x.size(0), -1)
out = self.conv1(out)
out = self.pool1(out)
out = self.relu1(out)
   out = self.conv2(out)
   out = self.pool2(out)
   out = self.relu2(out)

   out = self.conv3(out)
   out = self.pool3(out)
   out = self.relu3(out)

   out = self.fc1(out)


With this new forward method I get the error:

Expected 4-dimensional input for 4-dimensional weight 16 3 3 3, but got 2-dimensional input of size [5, 196608] instead