PyTorch--torch.utils.data模块

一、torch.utils.data模块

torch.utils.data模块包含一些常用的数据预处理的操作,主要用于数据的读取、切分、准备。
1、回归数据准备
加载数据–>将数据集转化为32位浮点型–>将numpy数组转化为张量–>数据加载器,将训练数据进行批量处理

#回归数据准备
import torch
import torch.utils.data as Data
from sklearn.datasets import load_boston,load_iris
import numpy as np
boston_X,boston_y=load_boston(return_X_y=True)
print("boston_X.dtype:",boston_X.dtype)
print("boston_y.dtype:",boston_y.dtype)
train_xt=torch.from_numpy(boston_X.astype(np.float32))
train_yt=torch.from_numpy(boston_y.astype(np.float32))
print("train_xt.dtype:",train_xt.dtype)
print("train_yt.dtype:",train_yt.dtype)
train_data=Data.TensorDataset(train_xt,train_yt)
print(train_data)
#定义一个数据加载器,将训练数据集进行批量处理
train_loader=Data.DataLoader(
    dataset=train_data,#使用的数据集
    batch_size=64,#批处理的样本大小
    shuffle=True,#每次迭代前打乱数据
    num_workers=0,#使用两个进程修改为1  但这里不行 因为是cpu
)
#检查训练数据集的一个batch的样本的维度是否正确
for step,(b_x,b_y) in enumerate(train_loader):
    if step>0:
        break
print("b_x.shape:",b_x.shape)
print("b_y.shape:",b_y.shape)
print("b_x.dtype:",b_x.dtype)
print("b_y.dtype:",b_y.dtype)

在这里插入图片描述
2、分类数据准备

#分类数据准备
import torch
import torch.utils.data as Data
from sklearn.datasets import load_boston,load_iris
import numpy as np
iris_X,iris_y=load_iris(return_X_y=True)
print("boston_X.dtype:",iris_X.dtype)
print("boston_y.dtype:",iris_y.dtype)
train_xt=torch.from_numpy(iris_X.astype(np.float32))
train_yt=torch.from_numpy(iris_y.astype(np.int64))#使用PyTorch定义网络模型时,对于分类问题,默认的预测变量是64位有符号整型数据
print("train_xt.dtype:",train_xt.dtype)
print("train_yt.dtype:",train_yt.dtype)
train_data=Data.TensorDataset(train_xt,train_yt)
print(train_data)
#定义一个数据加载器,将训练数据集进行批量处理
train_loader=Data.DataLoader(
    dataset=train_data,#使用的数据集
    batch_size=10,#批处理的样本大小
    shuffle=True,#每次迭代前打乱数据
    num_workers=0,#使用两个进程修改为1  但这里不行 因为是cpu
)
#检查训练数据集的一个batch的样本的维度是否正确
for step,(b_x,b_y) in enumerate(train_loader):
    if step>0:
        break
print("b_x.shape:",b_x.shape)
print("b_y.shape:",b_y.shape)
print("b_x.dtype:",b_x.dtype)
print("b_y.dtype:",b_y.dtype)

在这里插入图片描述
3、图像数据准备

#图像数据准备
import torch
import torch.utils.data as Data
from torchvision.datasets import FashionMNIST
import torchvision.transforms as transforms
from torchvision.datasets import ImageFolder#定义一个数据加载器从文件夹中读取数据
train_data=FashionMNIST(
    root="./data/FashionMNIST",
    train=True,
    transform=transforms.ToTensor(),
    download=False
    )
train_loader=Data.DataLoader(
    dataset=train_data,
    batch_size=64,
    shuffle=True,
    num_workers=0,
)
print("train_loader的batch数量为:",len(train_loader))
import torch
import torch.utils.data as Data
from torchvision.datasets import FashionMNIST
import torchvision.transforms as transforms
from torchvision.datasets import ImageFolder#定义一个数据加载器从文件夹中读取数据
train_data_transforms=transforms.Compose([
    transforms.RandomResizedCrop(224),#随机长宽比裁剪为224x224
    transforms.RandomHorizontalFlip(),#依概率p=0.5水平翻转
    transforms.ToTensor(),#转化为张量并归一化至[0,1]区间
    #图像标准化处理
    transforms.Normalize([0.845,0.456,0.406],[0.229,0.224,0.225])
])
#读取图像
train_data_dir="Data/image/"
train_data=ImageFolder(train_data_dir,transform=train_data_transforms)
train_data_loader=Data.DataLoader(train_data,batch_size=1,shuffle=True,num_workers=0)
print("数据集的label:",train_data.targets)
for step,(b_x,b_y) in enumerate(train_data_loader):
    if step>0:
        break
print(b_x.shape)
print(b_y.shape)
print("图像的取值范围为:",b_x.min(),"~",b_x.max())

在这里插入图片描述

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值