# \[resolved\] Validation Loss

**URL:** <https://discuss.pytorch.org/t/resolved-validation-loss/3501>\
**Category:** Uncategorized\
**Created:** [May 29, 2017, 2:57am UTC](https://discuss.pytorch.org/t/resolved-validation-loss/3501 "2017-05-29T02:57:55Z")\
**Posts on this page:** 2\
**Page:** 1

<div class="post-metadata">

**Author:** ![ritchieng](https://discuss.pytorch.org/user_avatar/discuss.pytorch.org/ritchieng/32/7321_2.png) [@ritchieng](https://discuss.pytorch.org/u/ritchieng)\
**Post date:** [May 29, 2017, 2:57am UTC](https://discuss.pytorch.org/t/resolved-validation-loss/3501/1 "2017-05-29T02:57:55Z")

</div>

Hi,

How do you calculate the validation loss per iteration?

Say you’ve your `train_loader` and `test_loader`.

Normally for training per iteration to get the training loss, we do `loss = criterion(outputs, labels` where `criterion = nn.CrossEntropyLoss()` .

For validation per iteration,

```auto
            test_loss_iter = []
            for images, labels in test_loader:
                images = Variable(images.view(-1, 784).cuda())
                outputs = net(images)
                test_loss = criterion(outputs, labels)
                test_loss_iter.append(test_loss)
            iteration_test_loss = np.mean(test_loss_iter)

```

But I get error `AttributeError: 'torch.LongTensor' object has no attribute 'requires_grad'`

---

<div class="post-metadata">

**Author:** ![ritchieng](https://discuss.pytorch.org/user_avatar/discuss.pytorch.org/ritchieng/32/7321_2.png) [@ritchieng](https://discuss.pytorch.org/u/ritchieng)\
**Post date:** [May 29, 2017, 3:23am UTC](https://discuss.pytorch.org/t/resolved-validation-loss/3501/2 "2017-05-29T03:23:13Z")

</div>

Fixed it.

Set `volatile=True` for both `images` and `targets`.
