Использование предварительно обученного выходного линейного проекционного слоя в PyTorch - PullRequest
0 голосов
/ 15 января 2020

У меня есть вопрос, определяющий c об использовании некоторого предварительно подготовленного выходного линейного проекционного слоя одной сети LSTM для другой.

Что у меня есть: 1. Предварительно обученный полностью связанный слой, который использовался для вывода вероятностей слова в фактические слова для некоторой модели генерации языка, что-то вроде этого:

self.output_linear_projection = nn.Linear(self.wordRNN_dim, self.vocab_size)

  • Здесь self.wordRNN_dim равно 512 (скрыто размер LSTM), а self.vocab_size - это количество слов, которые у меня есть. Для этой предварительно обученной модели размер словаря составляет 10509, где он содержит 10508 слов, а последний элемент - проекция токена <end> и <start> (для этих токенов используется та же проекция)

  • Моя модель генерации языка, для которой я хочу использовать выходной слой линейной проекции из предварительно обученной модели. Словарь моей модели также включает в себя токен <pad>, который отсутствует в предварительно обученной модели. Таким образом, размер моего словаря равен 10510.

Вопрос: - если я хочу использовать в моей модели этот слой линейной проекции с предварительно подготовленным выходом, что следует / я мог сделать? Как-то условно не проектировать <pad> токены? Если так, должен ли я как-то игнорировать это в моей проекции и как? И если есть какие-либо шаги, которые я должен предпринять, какие-либо советы о том, как сделать их в PyTorch?

...