La question dit tout. Je veux obtenir un 2-D torch.Tensor
avec la taille [a,b]
rempli de valeurs provenant d'une distribution uniforme (dans la plage [r1,r2]
) dans PyTorch.
Si U
est une variable aléatoire uniformément répartie sur [0, 1], alors (r1 - r2) * U + r2
est uniformément distribué sur [r1, r2].
Ainsi, vous avez juste besoin de:
(r1 - r2) * torch.Rand(a, b) + r2
Alternativement, vous pouvez simplement utiliser:
torch.FloatTensor(a, b).uniform_(r1, r2)
torch.FloatTensor(a, b).uniform_(r1, r2)
Pouvez-vous essayer quelque chose comme:
import torch as pt
pt.empty(2,3).uniform_(5,10).type(pt.FloatTensor)
Pour ceux qui dénigrent avec frustration leur clavier en criant "pourquoi cela ne fonctionne-t-il pas?" comme j'étais ... notez le soulignement derrière l'uniforme de Word.
torch.FloatTensor(a, b).uniform_(r1, r2)
^ here
Pour obtenir une distribution aléatoire uniforme, vous pouvez utiliser
torch.distributions.uniform.Uniform()
exemple,
import torch
from torch.distributions import uniform
distribution = uniform.Uniform(torch.Tensor([0.0]),torch.Tensor([5.0]))
distribution.sample(torch.Size([2,3])
Cela donnera la sortie, tenseur de taille [2, 3].