理解LSTM预测输出

  • 这是一个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

Related Posts

使用LSTM在Python中预测未来值

这段代码可以预测指定股票的当前日期之前的值,但不能预测…

如何在gensim的word2vec模型中查找双词组的相似性

我有一个word2vec模型,假设我使用的是googl…

dask_xgboost.predict 可以工作但无法显示 – 数据必须是一维的

我试图使用 XGBoost 创建模型。 看起来我成功地…

ML Tuning – Cross Validation in Spark

我在https://spark.apache.org/…

如何在React JS中使用fetch从REST API获取预测

我正在开发一个应用程序,其中Flask REST AP…

如何分析ML.NET中多类分类预测得分数组?

我在ML.NET中创建了一个多类分类项目。该项目可以对…

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注