I am trying to generate a number from the normal distribution using:
from torch.distributions import Normal
noise = Normal(th.tensor([0]), th.tensor(3.20))
noise = noise.sample()
But I am getting this error: RuntimeError: _th_normal not supported on CPUType for Long
Your first tensor th.tensor([0])
is of torch.Long
type due to automatic type inference from passed value while float
or FloatTensor
is required by function.
You can solve it by passing 0.0
explicitly like this:
import torch
noise = torch.distributions.Normal(torch.tensor([0.0]), torch.tensor(3.20))
noise = noise.sample()
Better yet, drop torch.tensor
altogether, in this case Python types will be automatically casted to float
if possible, so this is valid as well:
import torch
noise = torch.distributions.Normal(0, 3.20)
noise = noise.sample()
And please, do not alias torch
as th
, it is not official, use fully qualified name as this only confuses everyone.