当前位置:   article > 正文

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

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

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

Pytorch中张量可以是一维、二维、三维或者更高维度的数据结构。一维张量类似于向量,二维张量类似于矩阵,三维张量类似一系列矩阵的堆叠。

目录

将张量包装为数据集

创建数据加载器

数据转换(图像转换)


将张量包装为数据集

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

  1. import torch
  2. import torchvision
  3. from torchvision import datasets
  4. train_data=datasets.MNIST("./data",train=True,download=True)
  5. x_train, y_train=train_data.data,train_data.targets

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

  1. val_data=datasets.MNIST("./data", train=False, download=True)
  2. x_val,y_val=val_data.data, val_data.targets

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

  1. from torch.utils.data import TensorDataset
  2. train_ds = TensorDataset(x_train, y_train)
  3. val_ds = TensorDataset(x_val, y_val)
  4. for x,y in train_ds:
  5. print(x.shape,y.item())
  6. break

 

创建数据加载器

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

  1. from torch.utils.data import DataLoader
  2. train_dl = DataLoader(train_ds, batch_size=100)
  3. val_dl = DataLoader(val_ds, batch_size=100)
  4. for xb,yb in train_dl:
  5. print(xb.shape)
  6. print(yb.shape)
  7. break

 

数据转换(图像转换)

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

导入库和训练数据集 

  1. import torchvision
  2. import matplotlib.pyplot as plt
  3. from torchvision import datasets
  4. from torchvision import transforms
  5. train_data=datasets.MNIST("./data", train=True, download=True)

借助transform类定义旋转

  1. data_transform = transforms.Compose
  2. ([
  3. transforms.RandomHorizontalFlip(p=1),
  4. transforms.RandomVerticalFlip(p=1),
  5. transforms.ToTensor(),
  6. ])

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

  1. img = train_data[5][0]
  2. img_tr=data_transform(img)
  3. img_tr_np=img_tr.numpy()
  4. plt.subplot(1,2,1)
  5. plt.imshow(img,cmap="gray")
  6. plt.title("original")
  7. plt.subplot(1,2,2)
  8. plt.imshow(img_tr_np[0],cmap="gray");
  9. plt.title("transformed 180")

 

 

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/人工智能uu/article/detail/838407
推荐阅读
相关标签
  

闽ICP备14008679号