web-dev-qa-db-fra.com

Comment créer une distribution normale dans Pytorch

Je veux créer une distribution normale aléatoire dans pytorch et la moyenne et la std sont respectivement 4, 0,5. Je n'ai pas trouvé d'API pour cela. Quelqu'un sait? Merci beaucoup.

13
dq.shen

Cela dépend de ce que vous souhaitez générer.

Pour générer une distribution normale standard, utilisez -

torch.randn()

pour toute distribution (disons normal, poisson ou uniforme etc) utilisez torch.distributions.Normal() ou torch.distribution.Uniform(). Un détail de toutes ces méthodes peut être vu ici - https://pytorch.org/docs/stable/distributions.html#normal

Une fois que vous avez défini ces méthodes, vous pouvez utiliser la méthode .sample pour générer le nombre d'instances. Il vous permet également de générer un échantillon en forme d'échantillon ou un lot d'échantillons en forme d'échantillon si les paramètres de distribution sont groupés.

0
Pankaj Mishra

Une option simple consiste à utiliser la fonction randn du module de base. Il crée un échantillon aléatoire à partir de la distribution gaussienne standard. Pour changer la moyenne et l'écart-type, vous utilisez simplement l'addition et la multiplication. Ci-dessous, je crée un échantillon de taille 5 à partir de votre distribution demandée.

import torch
torch.randn(5) * 0.5 + 4 # tensor([4.1029, 4.5351, 2.8797, 3.1883, 4.3868])
0
gui11aume