如何在PyTorch中的[r1,r2]范围内获得均匀分布?

Bis*_*tha 19 uniform-distribution pytorch

问题就是这一切.我希望得到一个2-D torch.Tensor,其大小[a,b]填充了[r1,r2]PyTorch中均匀分布(范围内)的值.

BiB*_*iBi 27

如果U是在[0,1]上均匀分布的随机变量,则(r1 - r2) * U + r2均匀分布在[r1,r2]上.

因此,您只需要:

(r1 - r2) * torch.rand(a, b) + r2
Run Code Online (Sandbox Code Playgroud)

  • 不应该反过来吗?即 (r2-r1)*torch.rand(a,b) + r1? (5认同)
  • @CharlieParker [有:](/sf/answers/4662008291/) `torch.distributions.uniform.Uniform()` (2认同)

raf*_*lle 13

torch.FloatTensor(a, b).uniform_(r1, r2)
Run Code Online (Sandbox Code Playgroud)

  • @CharlieParker [有:](/sf/answers/4662008291/)`torch.distributions.uniform.Uniform()` (2认同)

Gau*_*ava 10

利用该torch.distributions包生成来自不同发行版的样本。

[a,b]例如,要从均匀分布中采样大小为 2d PyTorch 张量,range(low, high)请尝试以下示例代码

import torch
a,b = 2,3   #dimension of the pytorch tensor to be generated
low,high = 0,1 #range of uniform distribution

x = torch.distributions.uniform.Uniform(low,high).sample([a,b]) 
Run Code Online (Sandbox Code Playgroud)