Скажем, я получаю следующие переменные через какую-то нейронную сеть:
Скажем, я получаю следующие переменные через какую-то нейронную сеть:
Скажем, p>
Код: Выделить всё
mu, sigma, pred = model.forward(input)
Код: Выделить всё
batch_size x 30Код: Выделить всё
batch_size x 30Код: Выделить всё
batch_size x 30Код: Выделить всё
def sample_from_beta_distribution(alpha, beta, eps=1e-6):
# Clamp alpha and beta to be positive
alpha_positive = torch.clamp(alpha, min=eps)
beta_positive = torch.clamp(beta, min=eps)
# Create a Beta distribution
# This will automatically broadcast to handle the batch dimension
beta_dist = torch.distributions.beta.Beta(alpha_positive, beta_positive)
# Sample from the distribution
# This will return samples of shape [38, 30]
samples = beta_dist.sample()
return samples
Код: Выделить всё
batch_size x 30Любые выводы могут помочь. Обратите внимание: это не так просто, как трюк с перепараметризацией в стандартном нормальном распределении.
Подробнее здесь: https://stackoverflow.com/questions/793 ... in-pytorch
Мобильная версия