在使用RNN的seq2seq模型中,为什么输入的维数与隐藏层相同

时间:2018-10-18 02:25:15

标签: machine-learning pytorch encoder seq2seq

在学习seq2seq模型时,我在:https://pytorch.org/tutorials/intermediate/seq2seq_translation_tutorial.html中阅读了一个教程 并陷入这些代码中:

class EncoderRNN(nn.Module):
    def __init__(self, input_size, hidden_size):
        super(EncoderRNN, self).__init__()
        self.hidden_size = hidden_size

        self.embedding = nn.Embedding(input_size, hidden_size)
        self.gru = nn.GRU(hidden_size, hidden_size)

    def forward(self, input, hidden):
        embedded = self.embedding(input).view(1, 1, -1)
        output = embedded
        output, hidden = self.gru(output, hidden)
        return output, hidden

    def initHidden(self):
        return torch.zeros(1, 1, self.hidden_size, device=device)

我看不到为什么nn.GRU的两个输入都为hidden_​​size,为什么nn.Embedding将输入映射到大小为hidden_​​size的向量。我一直认为输入维可以自由选择... < / p>

0 个答案:

没有答案