pytorch如何增加维度_Pytorch中的LSTM:如何添加/更改序列长度维度?-问答-阿里云开发者社区-阿里云...

本文档探讨了在PyTorch中使用LSTM时遇到的问题,即如何处理不同序列长度。作者提到当尝试将序列长度从1增加到4时,遇到了输入和目标长度不匹配的错误。问题在于LSTM模型需要与目标标签相同形状的输入。解决方案包括正确处理输入张量的维度,确保在批量处理时,输入和目标都符合预期的形状。示例代码展示了如何使用TensorDataset和DataLoader来准备数据,并定义了一个简单的LSTM模型。
摘要由CSDN通过智能技术生成

我在pytorch中运行LSTM,但据我所知,它只取序列长度= 1。当我将序列长度整形为4或其他数字时,就会得到输入和目标长度不匹配的错误。如果我同时对输入和目标进行整形,那么模型会抱怨它不接受多目标标签。 我的训练数据集有66512行和16839列,目标中有3个类别/类。我想使用批处理大小为200和序列长度为4,即在一个序列中使用4行数据。 请建议如何调整我的模型和/或数据,以便能够运行模型的各种序列长度(例如,4)。

batch_size=200

import torch

from torch.utils.data import TensorDataset

from torch.utils.data import DataLoader

train_target = torch.tensor(train_data[['Label1','Label2','Label3']].values.astype(np.float32))

train_target = np.argmax(train_target, axis=1)

train = torch.tensor(train_data.drop(['Label1','Label2','Label3'], axis = 1).values.astype(np.float32))

train_tensor = TensorDataset(train.unsqueeze(1), train_target)

train_loader = DataLoader(dataset = train_tensor, batch_size = batch_size, shuffle = True)

<
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值