-
这是一个15类别的分类模型,
OUTPUT_DIM = 15
。我试图输入一个类似这样的频率向量'hi my name is' => [1,43,2,56]
。 -
当我调用
predictions = model(x_train[0])
时,我得到一个大小为torch.Size([100, 15])
的数组,而不是像这样只有15个类别的1D数组:torch.Size([15])
。这是怎么回事?为什么会是这样的输出?我该如何解决这个问题?提前感谢您,下面有更多信息。
模型 (来自主要文档) 如下所示:
参数:
INPUT_DIM = 62288EMBEDDING_DIM = 64HIDDEN_DIM = 128OUTPUT_DIM = 15
回答:
PyTorch中的LSTM函数不仅返回最后一个时间步的输出,还返回所有时间步的输出(在某些情况下这是有用的)。所以在你的例子中,你似乎正好有100个时间步(时间步的数量就是你的序列长度)。
但由于你在进行分类,你只关心最后的输出。你通常可以这样获取它:
outputs, _ = self.lstm(embeddings)# shape: batch_size x 100 x 15output = outputs[:, -1] # shape: batch_size x 1 x 15