alueError: Expected input batch_size (14880) to match target batch_size (32)

baglan_zhubatkanov: <pre><code class="lang-auto">class ConvNet (nn.Module):
    def __init__(self):
        super(ConvNet, 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, 6)
    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)            
        x = F.relu(self.fc1(x))               
        x = F.relu(self.fc2(x))               
        x = self.fc3(x)
        print('x_shape:',x.shape)                       
        return x
</code></pre>
<pre><code class="lang-auto">n_total_steps = len(train_loader)
for epoch in range(num_epochs):
    for i, (images, labels) in enumerate(train_loader):
        images = images.to(device)
        labels = labels.to(device)

        # Forward pass
        outputs = model(images)
        loss = criterion(outputs, labels)

        # Backward and optimize
        optimizer.zero_grad()
        loss.backward()
        optimizer.step()

        if (i+1) % 2000 == 0:
            print (f'Epoch [{epoch+1}/{num_epochs}], Step [{i+1}/{n_total_steps}], Loss: {loss.item():.4f}')

print('Finished Training')
PATH = './cnn.pth'
torch.save(model.state_dict(), PATH)
</code></pre>
<pre><code class="lang-auto">x_shape: torch.Size([14880, 6])
---------------------------------------------------------------------------
ValueError                                Traceback (most recent call last)
&lt;ipython-input-10-0f959bb8ddbd&gt; in &lt;module&gt;
      9         # Forward pass
     10         outputs = model(images)
---&gt; 11         loss = criterion(outputs, labels)
     12 
     13         # Backward and optimize

~\AppData\Roaming\Python\Python38\site-packages\torch\nn\modules\module.py in _call_impl(self, *input, **kwargs)
    725             result = self._slow_forward(*input, **kwargs)
    726         else:
--&gt; 727             result = self.forward(*input, **kwargs)
    728         for hook in itertools.chain(
    729                 _global_forward_hooks.values(),

~\AppData\Roaming\Python\Python38\site-packages\torch\nn\modules\loss.py in forward(self, input, target)
    959 
    960     def forward(self, input: Tensor, target: Tensor) -&gt; Tensor:
--&gt; 961         return F.cross_entropy(input, target, weight=self.weight,
    962                                ignore_index=self.ignore_index, reduction=self.reduction)
    963 

~\AppData\Roaming\Python\Python38\site-packages\torch\nn\functional.py in cross_entropy(input, target, weight, size_average, ignore_index, reduce, reduction)
   2466     if size_average is not None or reduce is not None:
   2467         reduction = _Reduction.legacy_get_string(size_average, reduce)
-&gt; 2468     return nll_loss(log_softmax(input, 1), target, weight, None, ignore_index, None, reduction)
   2469 
   2470 

~\AppData\Roaming\Python\Python38\site-packages\torch\nn\functional.py in nll_loss(input, target, weight, size_average, ignore_index, reduce, reduction)
   2259 
   2260     if input.size(0) != target.size(0):
-&gt; 2261         raise ValueError('Expected input batch_size ({}) to match target batch_size ({}).'
   2262                          .format(input.size(0), target.size(0)))
   2263     if dim == 2:

ValueError: Expected input batch_size (14880) to match target batch_size (32).
</code></pre>
<p>I just started studying Pytorch</p>

ptrblck: <p>Change the flattening from <code>x = x.view(-1, 16 * 5 * 5)</code> to <code>x = x.view(x.size(0), -1)</code> to keep the batch size equal in case you have a miscalculation in the feature size.<br>
If you are running into a shape mismatch error in the next linear layer, print the shape of <code>x</code> after the <code>view</code> operation and make sure the linear layer has its <code>in_features</code> set to the right value.</p>