pytorch-mdn icon indicating copy to clipboard operation
pytorch-mdn copied to clipboard

Something wrong for weight parameters pi ?

Open stonyhu opened this issue 5 years ago • 0 comments

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 ?

stonyhu avatar Mar 02 '19 13:03 stonyhu