【问题标题】:How to handle variable length sentences in PyTorch with Glove embedding layer?如何使用 Glove 嵌入层处理 PyTorch 中的可变长度句子?
【发布时间】:2021-07-15 19:06:02
【问题描述】:

我正在 PyTorch 中使用 RNN 构建文本分类器。我使用的嵌入是 GLOVE。但是,我将可变长度索引引用提供给模型。这将导致可变长度嵌入,我认为它不会起作用。我如何解决这个问题并使所有句子的嵌入输出长度相同?

def forward(self, sentence):
        embeds = self.embedding(sentence)
        hidden = self.__init__hidden(size) 
        output, hidden = self.rnn(embeds, hidden)
        out = self.hidden2out(output)

另外,如果有人能告诉我如何选择隐藏层的大小,那就太好了。

【问题讨论】:

    标签: python machine-learning deep-learning nlp pytorch


    【解决方案1】:

    在这种情况下,您的数据可以在 pytorch 中表示为具有以下形状:[seq_len, batch, vocab_size]。当您以这种方式为模型创建张量时,批量大小由您决定,序列长度是可变的。

    当您使用 GloVe 或 word2vec 等嵌入时,您所做的是压缩您的词汇量(从数千到

    在不了解您的嵌入层的情况下,我只需要假设它在正确的维度上运行。如果不是,则进行几个转置操作以确保它可以正常工作。

    获得关于隐藏层大小的直觉(我假设你谈论你在 RNN 中的 h_0 输入)和隐藏层数量的唯一方法是不幸地尝试一下关于。我什至无法给您一个猜测,因为我不知道您使用的是什么数据集或您要解决什么问题。机器学习中没有万能的政策!

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2018-01-09
      • 2022-08-18
      • 2019-12-06
      • 2017-06-08
      • 2018-03-12
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多