关于使用pytorch构建GRU

我使用了pytroch实现了GRU,调用了原有的模型,然后先是报了输入数据缺少维度的问题,当我使用

X_train = X_train.reshape( X_train.shape[0], 1, X_train.shape[1])之后,在loss函数却出现了ValueError: Expected target size (128, 10), got torch.Size([128])的报错,

我不清楚为什么会有这个问题,因为原本的BPNN的代码中也是这样使用的loss函数,没有问题,这里的loss函数使用的是交叉熵损失

loss_function = torch.nn.CrossEntropyLoss(),我也知道这个错误是维度的问题,可是怎么改,我毫无头绪,请大佬指点

函数

具有batch_first = True [batch_size,seq_len,features]`的output张量。

根据您的描述,我想您想使用上一步骤的激活进行分类,因此您可能希望通过以下方式对其进行切片:

nn.LSTMis returned in the shape

lstm_out, hidden = self.lstm(embeddings_out, hidden)
lstm_out = lstm_out[:, -1]

并进一步处理该张量。

你的 shape 是不是(128,?, 10)?查查看。

print(x.shape)

你error说 :                这里是128                这个消失了
X_train = X_train.reshape( X_train.shape[0], 1, X_train.shape[1])

对不起,看反了。你是少了数据。你的码show来看看。

代码不完整,值出现问题

“预期的目标尺寸{},得到了{}”,目标尺寸错误,请从train_dataloader检查标签。

x_train=x_train.reshape((x_train.shape[0],x_train.shape[1],1))

修改一下