【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")
相关推荐
哥廷根数学学派18 分钟前
基于LSTM的相对湿度预测(Part2,Python)
人工智能·python·深度学习·机器学习·数据挖掘·lstm·信号处理
TM 2.022 分钟前
如何交叉编译C++并构建成python库
开发语言·c++·python
小鹿( ﹡ˆoˆ﹡ )23 分钟前
Lambda 表达式:解锁编程世界的魔法之门
java·开发语言·python
饮啦冰美式23 分钟前
Python的全局变量
python
职场人参26 分钟前
怎么将flac格式音频转为mp3?看了就能学会的四种方法介绍!
开发语言·网络·人工智能·计算机视觉·音视频
小李学AI28 分钟前
基于YOLOv8的茶叶病变检测系统
人工智能·pytorch·深度学习·神经网络·yolo·目标检测·计算机视觉
肖遥Janic1 小时前
Stable Diffusion绘画 | 文生图-采样器使用说明
人工智能·ai·ai作画·stable diffusion·ai绘画
肖遥Janic1 小时前
Stable Diffusion绘画 | 图生图-涂鸦重绘
人工智能·ai·ai作画·stable diffusion·midjourney
我明天再来学Web渗透1 小时前
【找出所有稳定的二进制数组 I】python刷题记录
开发语言·数据结构·python·算法
雨_刃1 小时前
pandas的文本与序列化
python