我使用了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.LSTM
is 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))
修改一下