Дизайн PyTorch: почему torch.distributions.multivariate_normal имеет методы вне своего класса? - PullRequest
0 голосов
/ 30 апреля 2019

Я пытаюсь понять дизайн pytorch немного лучше.Я пытался нарисовать образцы из многомерного нормального и нашел torch.distributions.multivariate_normal, который, к моему удивлению, является модулем со многими защищенными функциями, определенными вне его класса MultivariateNormal ().

Я был сбит с толку относительнопочему это было так.Почему бы просто не определить все эти функции как методы класса внутри класса MultivariateNormal ()?Таким образом, мы можем создать экземпляр объекта этого класса с помощью

torch.distributions.multivariate_normal(mu,sigma)

, а не

torch.distributions.multivariate_normal.MultivariateNormal(mu,sigma).

Есть мысли?

Спасибо.

1 Ответ

1 голос
/ 30 апреля 2019

Вы можете вызвать MultivariateNormal напрямую:

import torch
gaussian = torch.distributions.MultivariateNormal(torch.ones(2),torch.eye(2))

Но класс MultivariateNormal реализован в файле "torch / distributions / multivariate_normal.py", поэтому оба вызова верны

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...