sample()和rsample()有什么区别

时间:2020-03-04 19:11:07

标签: pytorch

我这样做的时候

import torch, seaborn as sns
x = torch.distributions.Normal(torch.tensor([0.0]), torch.tensor([1.0]))
sns.distplot(x.sample((100000,)))

给予

enter image description here

同时

sns.distplot(x.rsample((100000,)))

还给出

enter image description here

何时应使用sample(),何时应使用rsample()?

1 个答案:

答案 0 :(得分:4)

使用rsample允许pathwise derivatives

实现这些随机/策略梯度的另一种方法是使用rsample()方法中的重新参数化技巧,其中可以通过无参数随机变量的参数化确定性函数构造参数化随机变量。因此,重新参数化的样本变得可区分。