Nlp Pytorch:根据输入的句子长度改变FC层神经元的数量

Nlp Pytorch:根据输入的句子长度改变FC层神经元的数量,nlp,pytorch,Nlp,Pytorch,我有一个不同句子长度的数据集。我标记并批处理它们,然后将它们发送给RNN。 对于每个批次,每个句子数组长度都是该批次中最长句子的长度。因此,不同批次具有不同的输入形状。(输入形状为[批量大小、句子长度、嵌入大小]) 理想情况下,函数的逻辑应该如上所述。但实际上,派托克不允许我这样做。在不修改输入的情况下,正确的方法应该是什么?(例如,批量将所有句子更改为相同长度?) class Text_RNN(nn.Module): def __init__(): super(Text_RNN,

我有一个不同句子长度的数据集。我标记并批处理它们,然后将它们发送给RNN。 对于每个批次,每个句子数组长度都是该批次中最长句子的长度。因此,不同批次具有不同的输入形状。(输入形状为[批量大小、句子长度、嵌入大小])

理想情况下,函数的逻辑应该如上所述。但实际上,派托克不允许我这样做。在不修改输入的情况下,正确的方法应该是什么?(例如,批量将所有句子更改为相同长度?)

class Text_RNN(nn.Module):
  def __init__():
    super(Text_RNN, self).__init__()
    self.rnn = nn.RNN(input_size=embedding_dim,hidden_size=n_hidden,num_layers=n_layers)
    # shape now become ([batch_size, sentence_length, n_hidden])
    self.flatten = nn.Flatten(start_dim=1, end_dim=2)
    self.fc = nn.Linear(sentence_length*n_hidden,1)



  def forward(self,input):
     output, hidden = self.rnn(input)
     output = self.flatten(output)
     len = print(output.shape[1])
     finalout = self.fc(len)(output)
     return finalout