Вывод DecoderRNN содержит дополнительные измерения (Pytorch)

Я разработал сеть Encoder(CNN)-Decoder (RNN) для субтитров изображения в pytorch. Сеть декодера принимает два входных вектора - вектор признака контекста от кодера и вложение слова заголовка для обучения. Вектор контекстного объекта имеет размер = embed_size, который также является размером вложения каждого слова в заголовке. Мой вопрос здесь больше касается вывода класса DecoderRNN. Пожалуйста, обратитесь к коду ниже.

class DecoderRNN(nn.Module):
def __init__(self, embed_size, hidden_size, vocab_size, num_layers=1):
    super(DecoderRNN, self).__init__()
    self.embed_size = embed_size
    self.hidden_size = hidden_size
    self.vocab_size = vocab_size
    self.num_layers = num_layers
    self.linear = nn.Linear(hidden_size, vocab_size)
    self.embed = nn.Embedding(vocab_size, embed_size)
    self.lstm = nn.LSTM(embed_size, hidden_size, num_layers, batch_first = True)


def forward(self, features, captions):
    embeddings = self.embed(captions)
    embeddings = torch.cat((features.unsqueeze(1), embeddings),1)
    hiddens,_ = self.lstm(embeddings)
    outputs = self.linear(hiddens)
    return outputs

В функции forward я отправляю последовательность (batch_size, caption_length+1, embed_size) (каскадный тензор вектора контекста и встроенной подписи) . Выходные данные последовательности должны иметь заголовки и форму (batch_size, caption_length, vocab_size), но я все еще получаю выходные данные формы (batch_size, caption_length +1, vocab_size) . Может ли кто-нибудь предложить, что я должен изменить в моей функции пересылки, чтобы дополнительное 2-е измерение не было получено? заранее спасибо

1 ответ

Поскольку в LSTM (или в любом RNN) для каждого временного шага (или длины заголовка здесь) будет один выход, я не вижу здесь никакой проблемы. Что вам нужно сделать, это сделать размер ввода (caption_length) во втором измерении, чтобы получить требуемый результат. (или люди обычно добавляют тег к цели. Следовательно, длина цели - заголовок +1)

Другие вопросы по тегам