Interpret the output of CONV2D ,x.view

I got very simple doubt and pretty much confused…need some help on this
What is the output of that conv2d and what does the x.view do?

class Net(nn.Module):
    def __init__(self):
        super(Net, self).__init__()
        self.conv1 = nn.Conv2d(3, 6, 5)
        self.pool = nn.MaxPool2d(2, 2)
        self.conv2 = nn.Conv2d(6, 16, 5)
        self.fc1 = nn.Linear(16 * 5 * 5, 120)
        self.fc2 = nn.Linear(120, 84)
        self.fc3 = nn.Linear(84, 10)
    
    def forward(self, x):
        x = self.pool(F.relu(self.conv1(x)))
        x = self.pool(F.relu(self.conv2(x)))
        x = x.view(-1, 16 * 5 * 5)
        print(x.size())
        x = F.relu(self.fc1(x))
        x = F.relu(self.fc2(x))
        x = self.fc3(x)
        return x

net = Net()

I expected after printing the size of the x should be (1,400)
but it is actually (4,400)

can anybody tell me y?

The code is running fine without any error but want to know what happening actually.Running on the CIFAR dataset

what is the input size?

I think i got it is because of the batch size (not sure…hope u confirm.)

Input size is output of the convolution layer… 4*16 * 5 * 5.