В настоящее время я пытаюсь решить Pendulum-v0 из среды спортзала openAi, в которой есть пространство непрерывного действия. В результате мне нужно использовать нормальное распределение для проверки моих действий. Что я не понимаю, так это размер log_prob при его использовании:
import torch
from torch.distributions import Normal
means = torch.tensor([[0.0538],
[0.0651]])
stds = torch.tensor([[0.7865],
[0.7792]])
dist = Normal(means, stds)
a = torch.tensor([1.2,3.4])
d = dist.log_prob(a)
print(d.size())
Я ожидал тензор размера 2 (по одному log_prob для каждого действия), но он выдает тензор размера (2, 2).
Однако при использовании Категориального распределения для дискретной среды ожидаемый размер log_prob:
logits = torch.tensor([[-0.0657, -0.0949],
[-0.0586, -0.1007]])
dist = Categorical(logits = logits)
a = torch.tensor([1, 1])
print(dist.log_prob(a).size())
дает мне тензор размера (2).
Почему log_prob для нормального распределения другого размера?