【Pytorch】数据集的加载和处理(二)

【Pytorch】数据集的加载和处理(一)
Pytorch中张量可以是一维、二维、三维或者更高维度的数据结构。一维张量类似于向量,二维张量类似于矩阵,三维张量类似一系列矩阵的堆叠。

目录

将张量包装为数据集

创建数据加载器

数据转换(图像转换)


将张量包装为数据集

导入MNIST训练数据集并提取数据和标签

复制代码
import torch
import torchvision
from torchvision import datasets
train_data=datasets.MNIST("./data",train=True,download=True)
x_train, y_train=train_data.data,train_data.targets

导入MNIST验证数据集并提取数据和标签

复制代码
val_data=datasets.MNIST("./data", train=False, download=True)
x_val,y_val=val_data.data, val_data.targets

使用 TensorDataset类将张量包装为数据集

复制代码
from torch.utils.data import TensorDataset
train_ds = TensorDataset(x_train, y_train)
val_ds = TensorDataset(x_val, y_val)

for x,y in train_ds:
    print(x.shape,y.item())
    break

创建数据加载器

通过DataLoader从数据集创建数据加载器

复制代码
from torch.utils.data import DataLoader
train_dl = DataLoader(train_ds, batch_size=100)
val_dl = DataLoader(val_ds, batch_size=100)

for xb,yb in train_dl:
    print(xb.shape)
    print(yb.shape)
    break

数据转换(图像转换)

通过 transform 类进行简单的图像转换

导入库和训练数据集

复制代码
import torchvision
import matplotlib.pyplot as plt
from torchvision import datasets
from torchvision import transforms
train_data=datasets.MNIST("./data", train=True, download=True)

借助transform类定义旋转

复制代码
data_transform = transforms.Compose
([
    transforms.RandomHorizontalFlip(p=1),
    transforms.RandomVerticalFlip(p=1),
    transforms.ToTensor(),
])

对训练数据集中图像进行旋转并打印对比

复制代码
img = train_data[5][0]
img_tr=data_transform(img)
img_tr_np=img_tr.numpy()

plt.subplot(1,2,1)
plt.imshow(img,cmap="gray")
plt.title("original")
plt.subplot(1,2,2)
plt.imshow(img_tr_np[0],cmap="gray");
plt.title("transformed 180")
相关推荐
产品人卫朋1 分钟前
卫朋:AI硬件产品怎么做?—— AI录音豆
人工智能·创业
一晌小贪欢1 分钟前
Python 健壮性进阶:精通 TCP/IP 网络编程与 requirements.txt 的最佳实践
开发语言·网络·python·网络协议·tcp/ip·python基础·python小白
weixin_395448914 分钟前
mult_yolov5_post_copy.c_cursor
linux·人工智能·python
Lonely丶墨轩5 分钟前
AI 对话系统 - DeepSeekClient 技术架构详解
人工智能·架构
fo安方5 分钟前
软考~系统规划与管理师考试—知识篇—第二版—18.智慧城市发展规划
人工智能·项目管理·智慧城市·软考·pmp
昨夜见军贴06166 分钟前
IACheck AI审核推动质量控制记录标准化,全面保障含量测定研究合规性
大数据·运维·人工智能
努力也学不会java7 分钟前
【Spring Cloud】 服务注册/服务发现
人工智能·后端·算法·spring·spring cloud·容器·服务发现
小码过河.7 分钟前
设计模式——模板方法模式
python·设计模式·模板方法模式
桂花饼8 分钟前
Gemini 3 Pro Image (Nano Banana Pro):重塑专业图像创作与工作流的旗舰级引擎
人工智能·nano banana pro·openai兼容接口·claude opus 4.5·sora2 pro·sora2pro·iquest-coder-v1
一招定胜负9 分钟前
OpenCV实战:透视变换原理与发票矫正全解析
人工智能·opencv·计算机视觉