编写pytorch代码,将多维数据集划分为训练集和测试集,用numPy转换成torch张量,归一化,保存为csv格式
时间: 2024-03-23 20:42:16 浏览: 73
Pytorch自己加载单通道图片用作数据集训练的实例
下面是一个示例代码,用于将多维数据集划分为训练集和测试集,将其转换为 PyTorch 张量,并进行归一化,最后将其保存为 csv 格式:
```python
import numpy as np
import pandas as pd
import torch
from sklearn.preprocessing import MinMaxScaler
from sklearn.model_selection import train_test_split
# 生成随机的多维数据
data = np.random.rand(100, 10, 5, 2)
# 划分训练集和测试集
train_data, test_data = train_test_split(data, test_size=0.2, random_state=42)
# 定义 MinMaxScaler
scaler = MinMaxScaler()
# 对训练集进行归一化
train_data_reshaped = train_data.reshape(-1, train_data.shape[-1])
scaler.fit(train_data_reshaped)
train_data_scaled = scaler.transform(train_data_reshaped).reshape(train_data.shape)
# 对测试集进行归一化
test_data_reshaped = test_data.reshape(-1, test_data.shape[-1])
test_data_scaled = scaler.transform(test_data_reshaped).reshape(test_data.shape)
# 将数据转换为 PyTorch 张量
train_tensor = torch.from_numpy(train_data_scaled).float()
test_tensor = torch.from_numpy(test_data_scaled).float()
# 保存为 csv 文件
train_df = pd.DataFrame(train_tensor.numpy().reshape(train_tensor.shape[0], -1))
test_df = pd.DataFrame(test_tensor.numpy().reshape(test_tensor.shape[0], -1))
train_df.to_csv('train.csv', index=False)
test_df.to_csv('test.csv', index=False)
```
需要注意的是,在对数据进行归一化时,要先对训练集进行 `fit` 操作,再对训练集和测试集进行 `transform` 操作,这样才能保证训练集和测试集的归一化方式相同。另外,为了方便后续处理,我们把多维数据 reshape 成了两维的形式,并把它们保存为 csv 文件。
阅读全文