基于pytorch写一个多对多预测代码,数据集名称为data.csv,前四列为特征,后面50列为标签,前800行为训练集其余为测试集,将其中一组预测值与真实值输出到excel工作表中
时间: 2023-02-16 18:03:38 浏览: 134
以下是基于 PyTorch 的多对多预测代码示例,其中使用了数据集 "data.csv" 作为输入,前四列为特征,后面 50 列为标签,前 800 行为训练集,其余为测试集。
```
import torch
import torch.nn as nn
import pandas as pd
import numpy as np
from sklearn.metrics import accuracy_score
# 读入数据
df = pd.read_csv("data.csv")
# 划分训练集和测试集
train_df = df[:800]
test_df = df[800:]
# 划分特征和标签
X_train = train_df.iloc[:, :4]
y_train = train_df.iloc[:, 4:]
X_test = test_df.iloc[:, :4]
y_test = test_df.iloc[:, 4:]
# 将数据转化为 PyTorch Tensor
X_train = torch.tensor(X_train.values, dtype=torch.float32)
y_train = torch.tensor(y_train.values, dtype=torch.float32)
X_test = torch.tensor(X_test.values, dtype=torch.float32)
y_test = torch.tensor(y_test.values, dtype=torch.float32)
# 定义模型
class MultiOutputModel(nn.Module):
def __init__(self):
super(MultiOutputModel, self).__init__()
self.layer1 = nn.Linear(4, 50)
def forward(self, x):
x = self.layer1(x)
return x
# 实例化模型
model = MultiOutputModel()
# 定义损失函数和优化器
criterion = nn.MSELoss()
optimizer = torch.optim.SGD(model.parameters(), lr=0.01)
# 训练模型
for epoch in range(100):
# 前向传播
y_pred = model(X_train)
# 计算损失
loss = criterion(y_pred, y_train)
# 反向传播
loss.backward()
# 更新参数
optimizer.step()
# 清空梯度
optimizer.
阅读全文