PyTorch 中二维数据转换为 LSTM 输入
在 PyTorch 中,将二维数据转换为 LSTM 输入需要进行以下步骤:
- 导入必要的库:
import torch
import torch.nn as nn
- 准备数据集: 首先,将二维数据转换为张量(torch.Tensor)的形式。假设输入数据的维度是(batch_size, seq_length, input_size)。
data = [[1, 2, 3], [4, 5, 6], [7, 8, 9]] # 示例数据
tensor_data = torch.tensor(data, dtype=torch.float32) # 将数据转换为张量
- 定义 LSTM 模型:
class LSTMModel(nn.Module):
def __init__(self, input_size, hidden_size, num_layers, output_size):
super(LSTMModel, self).__init__()
self.hidden_size = hidden_size
self.num_layers = num_layers
self.lstm = nn.LSTM(input_size, hidden_size, num_layers, batch_first=True)
self.fc = nn.Linear(hidden_size, output_size)
def forward(self, x):
h0 = torch.zeros(self.num_layers, x.size(0), self.hidden_size).to(x.device)
c0 = torch.zeros(self.num_layers, x.size(0), self.hidden_size).to(x.device)
out, _ = self.lstm(x, (h0, c0))
out = self.fc(out[:, -1, :]) # 只取最后一个时间步的输出
return out
- 初始化模型并进行前向传播:
input_size = tensor_data.size(2) # 输入数据的特征维度
hidden_size = 64 # LSTM隐藏层的维度
num_layers = 2 # LSTM层数
output_size = 1 # 输出数据的维度
model = LSTMModel(input_size, hidden_size, num_layers, output_size)
output = model(tensor_data)
这样,你就可以将二维数据转换为LSTM模型所需的输入格式。
原文地址: https://www.cveoy.top/t/topic/pdwy 著作权归作者所有。请勿转载和采集!