title: cnn IndexError: Target 2 is out of bounds
body: <p>I got this error after I executed my code and it seems that the below portion of the code is throwing this error. I tried different ways but nothing could solve it. The error is given by the loss function.</p>
  
  <pre><code>for i, data in enumerate(train_loader, 0):
  
  
        #  import pdb;pdb.set_trace()
          inputs, labels = data
          print(type(inputs))
          for input in inputs:
              inputs = torch.Tensor(input)
          inputs, labels= Variable(inputs), Variable(labels)
          inputs=inputs.unsqueeze(1)
          optimizer.zero_grad()
          outputs = net(inputs)
          #import pdb;pdb.set_trace()
          loss_size = loss(outputs, labels)
          loss_size.backward()
          optimizer.step()
  
          running_loss += loss_size.data[0]
          total_train_loss += loss_size.data[0]
  
          if (i + 1) % (print_every + 1) == 0:
              print("Epoch {}, {:d}% \t train_loss: {:.2f} took: {:.2f}s".format(
                      epoch+1, int(100 * (i+1) / n_batches), running_loss / print_every, time.time() - start_time))
              running_loss = 0.0
              start_time = time.time()
  </code></pre>
  
  <pre><code>--------------------------------------------------------------------------- IndexError                                Traceback (most recent call
  last) &lt;ipython-input-10-7d1b8710defa&gt; in &lt;module&gt;
        1 CNN = Net()
  ----&gt; 2 trainNet(CNN, learning_rate=0.001)
        3 #test()
  
  &lt;ipython-input-7-3208c0794681&gt; in trainNet(net, learning_rate)
       23             outputs = net(inputs)
       24             #import pdb;pdb.set_trace()
  ---&gt; 25             loss_size = loss(outputs, labels)
       26             loss_size.backward()
       27             optimizer.step()
  
  ~\Documents\Anaconda3\lib\site-packages\torch\nn\modules\module.py in
  __call__(self, *input, **kwargs)
      530             result = self._slow_forward(*input, **kwargs)
      531         else:
  --&gt; 532             result = self.forward(*input, **kwargs)
      533         for hook in self._forward_hooks.values():
      534             hook_result = hook(self, input, result)
  
  ~\Documents\Anaconda3\lib\site-packages\torch\nn\modules\loss.py in
  forward(self, input, target)
      914     def forward(self, input, target):
      915         return F.cross_entropy(input, target, weight=self.weight,
  --&gt; 916                                ignore_index=self.ignore_index, reduction=self.reduction)
      917 
      918 
  
  ~\Documents\Anaconda3\lib\site-packages\torch\nn\functional.py in
  cross_entropy(input, target, weight, size_average, ignore_index,
  reduce, reduction)    2019     if size_average is not None or reduce
  is not None:    2020         reduction =
  _Reduction.legacy_get_string(size_average, reduce)
  -&gt; 2021     return nll_loss(log_softmax(input, 1), target, weight, None, ignore_index, None, reduction)    2022     2023 
  
  ~\Documents\Anaconda3\lib\site-packages\torch\nn\functional.py in
  nll_loss(input, target, weight, size_average, ignore_index, reduce,
  reduction)    1836                          .format(input.size(0),
  target.size(0)))    1837     if dim == 2:
  -&gt; 1838         ret = torch._C._nn.nll_loss(input, target, weight, _Reduction.get_enum(reduction), ignore_index)    1839     elif dim == 4:    1840         ret = torch._C._nn.nll_loss2d(input, target,
  weight, _Reduction.get_enum(reduction), ignore_index)
  IndexError: Target 2 is out of bounds.
  </code></pre>
  
  <blockquote>
    <p>IndexError: Target 2 is out of bounds.</p>
  </blockquote>