Почему в модели seq2seq с использованием RNN размер входных данных равен скрытому слою? - PullRequest
0 голосов
/ 18 октября 2018

При изучении модели 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. Я всегда думал, что входное измерение можно выбрать свободно ...

...