return torch.poisson(self.rate.expand(shape))
RuntimeError: "poisson_cpu" not implemented for 'Long'
from torch.distributions import Bernoulli,Normal,Exponential,Poisson
# Bernoulli
m = Bernoulli(torch.tensor([0.3]))#torch.tensor([0.3]) # 有 30% 可能性出现 1,70% 可能性出现 0
print("Bernoulli",m.sample())
# 正态(高斯)分布
m = Normal(torch.tensor([0.0]), torch.tensor([1.0])) #
print("Normal",m.sample())
# 指数分布
m = Exponential(torch.tensor([1.0]))
print("Exponential",m.sample())
m = Poisson(torch.tensor([4]))
print("Poisson",m.sample())
m = Poisson(torch.tensor([4.0]))
print("Poisson",m.sample())
修改tensor数值4改为float类型就可以了。
File "D:\Programs\Python\Python39\lib\site-packages\torch\distributions\distribution.py", line 53, in __init__
raise ValueError("The parameter {} has invalid values".format(param))
ValueError: The parameter rate has invalid values
rate= torch.FloatTensor([[80.0,70,60],[50,40,30],[20,10,0]])
dist = torch.distributions.Poisson(rate=rate)
intervals = dist.sample(sample_shape=torch.Size([time + 1]))
tensor里面有0竟然出错。将0改为1就正常了。
哎呀,烦死了。