I want to make a Discriminator (GAN) and below is my code,
  def __init__(self):
        super(_D, self).__init__()
        self.conv1 = nn.Conv2d(3, 128, kernel_size=3, stride=2, padding=1)
        self.batchNorm1 = nn.BatchNorm2d(128)
        self.leakyReLU1 = nn.LeakyReLU(negative_slope=0.2, inplace=True)
       
        self.conv2 = nn.Conv2d(128, 256, kernel_size=3, stride=2, padding=1)
        self.batchNorm2 = nn.BatchNorm2d(256)
        self.leakyReLU2 = nn.LeakyReLU(negative_slope=0.2, inplace=True)

        self.conv3 = nn.Conv2d(256, 512, kernel_size=3, stride=2, padding=1)
        self.batchNorm3 = nn.BatchNorm2d(512)
        self.leakyReLU3 = nn.LeakyReLU(negative_slope=0.2, inplace=True)

        self.conv4 = nn.Conv2d(512, 256, kernel_size=3, stride=2, padding=1)
        self.batchNorm4 = nn.BatchNorm2d(256)
        self.leakyReLU4 = nn.LeakyReLU(negative_slope=0.2, inplace=True)

        self.conv5 = nn.Conv2d(256, 128, kernel_size=3, stride=2, padding=1)
        self.batchNorm5 = nn.BatchNorm2d(128)
        self.leakyReLU5 = nn.LeakyReLU(negative_slope=0.2, inplace=True)

        self.conv6 = nn.Conv2d(128, 3, kernel_size=3, stride=1)

    def forward(self, input):
        print()
        x = self.leakyReLU1(self.batchNorm1(self.conv1(input)))
        print(x.size())
        x = self.leakyReLU2(self.batchNorm2(self.conv2(x)))
        print(x.size())
        x = self.leakyReLU3(self.batchNorm3(self.conv3(x)))
        print(x.size())
        x = self.leakyReLU4(self.batchNorm4(self.conv4(x)))
        print(x.size())
        x = self.leakyReLU5(self.batchNorm5(self.conv5(x)))
        print(x.size())
        x = self.conv6(x)

there is an error  before   x = self.conv6(x). and it’s said that

Expected input batch_size(18) to match target batch_size (32)

I am not really sure how to determine the batch size of my convolution, but the last thing I try is to use batch_size=2  and the num_workers=2, and here are the tensors’ size that I print after every convolution block
torch.Size([2, 3, 152, 152])
torch.Size([2, 128, 76, 76])
torch.Size([2, 256, 38, 38])
torch.Size([2, 512, 19, 19])
torch.Size([2, 256, 10, 10])
torch.Size([2, 128, 5, 5])