pytorch-mdn
pytorch-mdn copied to clipboard
Something wrong for weight parameters pi ?
class MDNRNN(nn.Module):
def __init__(self, z_size, n_hidden=256, n_gaussians=5, n_layers=1):
super(MDNRNN, self).__init__()
self.z_size = z_size
self.n_hidden = n_hidden
self.n_gaussians = n_gaussians
self.n_layers = n_layers
self.lstm = nn.LSTM(z_size, n_hidden, n_layers, batch_first=True)
**self.fc1 = nn.Linear(n_hidden, n_gaussians*z_size)**
self.fc2 = nn.Linear(n_hidden, n_gaussians*z_size)
self.fc3 = nn.Linear(n_hidden, n_gaussians*z_size)
def get_mixture_coef(self, y):
rollout_length = y.size(1)
pi, mu, sigma = self.fc1(y), self.fc2(y), self.fc3(y)
**pi = pi.view(-1, rollout_length, self.n_gaussians, self.z_size)**
mu = mu.view(-1, rollout_length, self.n_gaussians, self.z_size)
sigma = sigma.view(-1, rollout_length, self.n_gaussians, self.z_size)
pi = F.softmax(pi, 2)
sigma = torch.exp(sigma)
return pi, mu, sigma
@sksq96 Hi author, isn't pi is multinomial distribution of gaussians? I think fc1 should be (n_hidden, n_gaussians) but not (n_hidden, n_gaussians*z_size). Am I right ?