Pytorch中的数据操作和预处理

Pytorch中的数据操作和预处理

整体概述

在Pytorch中的torch.util.data模块包含着一些常用的数据预处理的操作,主要用于数据的读取、切分、准备等

常用的数据操作类如下表所示

功能
torch.utils.data.TensorDataset()将数据处理为张量
torch.utils.data. ConcatDataset()连接多个数据集
torch.utils.data.Subset()根据索引获得数据集的子集
torch.utils.data. DataLoader数据加载器
torch.utils.data. random_split将数据集拆分为指定长度的非重叠数据集

使用这些类能够对高维数组、图像等各种类型的数据进行预处理,以便深度学习模型使用。

高维数组

很多情况下需要从文本文件(例如csv文件)中读取高维数组。
这一类数据的特征是,每个样本都有很多个预测变量(特征)和一个被预测变量(目标标签)特征通常是数值变量或者离散变量,连续变量对应回归、离散变量对应分类。

使用sklearn中提供的数据集load_boston和load_iris,来进行回归和分类数据的准备

回归数据准备

过程:加载相应模块,然后读取数据。

注意:使用sklearn中的数据集需要,使用1.2版本一下的数据集,否则会出错误

pip uninstall scikit-learn

pip install scikit-learn==1.1.1 -i https://pypi.tuna.tsinghua.edu.cn/simple

在这里插入图片描述
安装之前的版本
在这里插入图片描述

import torch
import torch.utils.data as Data
from sklearn.datasets import load_boston,load_iris

# 读取波士顿数据集
boston_X,boston_Y = load_boston(return_X_y=True)
print(boston_X.dtype)
print(boston_Y.dtype)
boston_Y

在这里插入图片描述

在进行数据处理的时候需要把64位的Numpy数据转化位32位的浮点型张量

# 将训练集x y转化为张量
train_xt = torch.from_numpy(boston_X.astype(np.float32))
train_yt = torch.from_numpy(boston_Y.astype(np.float32))
train_xt.dtype
train_yt.dtype

在这里插入图片描述
在训练全连接神经网络时,通常一次使用一个batch的数据进行权重的更新,torch.util.data.DataLoader()函数可以将输入数据集(包含数据特征张量和被预测的特征张量)获得一个加载器,每次迭代使用一个batch的数据

使用方法如下

train_data = Data.TensorDataset(train_xt,train_yt)
# 定义一个数据加载集,将训练数据集进行批处理
train_loader = Data.DataLoader(
    ##使用的数据集
     dataset = train_data,
    ##批处理的大小
     batch_size=64,
     shuffle=True,
    ##使用两个进程
     num_workers =1, 
)
# 检测训练数据集的一个batch的样本的维度是否正确
for step, (b_x,b_y) in enumerate(train_loader):
    if step > 0:
        break
        
# 判断循环完成之后的类型
b_x.shape

print(b_x.dtype)

在这里插入图片描述
根据分类的类型,可以验证得知波士顿房价回归预测的数据集

分类数据集

分类数据集的处理思想与回归的思想基本相同,处理逻辑类似,不在进行代码的演示。

如有需要可以联系我

  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

程序小旭

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值