def __init__(self, vocab, hidden_size, shared_weight=None): super(Generator, self).__init__() self.pad = vocab.pad() self.n_words = vocab.max_n_words self.hidden_size = hidden_size self.proj = Linear(self.hidden_size, self.n_words, bias=False) if shared_weight is not None: self.proj.linear.weight = shared_weight
def __init__(self, n_words, hidden_size, shared_weight=None, padding_idx=-1): super(Generator, self).__init__() self.n_words = n_words self.hidden_size = hidden_size self.padding_idx = padding_idx self.proj = Linear(self.hidden_size, self.n_words, bias=False) self.actn = nn.LogSoftmax(dim=-1) if shared_weight is not None: self.proj.linear.weight = shared_weight