var is of incorrect size
Package:
torch
50580

Exception Class:
ValueError
Raise code
# This is also a homoscedastic case.
# e.g. input.size = (10, 2, 3), var.size = (10, 2, 1)
elif input.size()[:-1] == var.size()[:-1] and var.size(-1) == 1: # Heteroscedastic case
pass
# If none of the above pass, then the size of var is incorrect.
else:
raise ValueError("var is of incorrect size")
# Check validity of reduction mode
if reduction != 'none' and reduction != 'mean' and reduction != 'sum':
raise ValueError(reduction + " is not valid")
# Entries of var must be non-negative
if torch.any(var < 0):
Links to the raise (1)
https://github.com/pytorch/pytorch/blob/e56d3b023818f54553f2dc5d30b6b7aaf6b6a325/torch/nn/functional.py#L2633Ways to fix
Summary:
This exception is thrown when calling the gaussian_nll_loss function. This function takes in 3 parameters: input, target, and vars. Each of these parameters must be torch tensors. An assertion is performed to ensure that the size of input and var is the same. If they are different sizes you will get the exception, so to avoid it, ensure input and var are of the same shape and size. Assuming the two tensors have the same number of data points, you can use the reshape function to make them match.
Code to Reproduce the Error (Wrong):
from torch.nn.functional import gaussian_nll_loss
inp = torch.arange(24).reshape(12,2)
target = torch.arange(24).reshape(12,2)
var = torch.arange(24).reshape(8,3)
gaussian_nll_loss(inp, target, var)
Error Code:
ValueError Traceback (most recent call last)
<ipython-input-96-7f2f88eb5eed> in <module>()
5 var = torch.arange(24).reshape(8,3)
6
----> 7 gaussian_nll_loss(inp, target, var)
/usr/local/lib/python3.7/dist-packages/torch/nn/functional.py in gaussian_nll_loss(input, target, var, full, eps, reduction)
2650 # If none of the above pass, then the size of var is incorrect.
2651 else:
-> 2652 raise ValueError("var is of incorrect size")
2653
2654 # Check validity of reduction mode
ValueError: var is of incorrect size
Working Version (Right):
from torch.nn.functional import gaussian_nll_loss
inp = torch.arange(24).reshape(12,2)
target = torch.arange(24).reshape(12,2)
var = torch.arange(24).reshape(8,3)
gaussian_nll_loss(inp, target, var)
Add a possible fix
Please authorize to post fix