from torch.utils import data
PyTorch 数据集处理包 torch.utils.data 的核心是 DataLoader 类。
DataLoader(dataset, batch_size=1, shuffle=False, sampler=None,
batch_sampler=None, num_workers=0, collate_fn=None,
pin_memory=False, drop_last=False, timeout=0,
worker_init_fn=None, *, prefetch_factor=2,
persistent_workers=False)
它构造一个 可迭代对象 loader,代表经过 “加工” 后的数据集。所谓的 “加工” 过程,是由构造函数参数表指定的,它包括:
设置数据的加载顺序(通过修改 shuffle 或 sampler 参数)
对数据进行 batching 处理(通过修改 batch_size,batch_sampler,collate_fn 及 drop_last 参数)
实现 multi-process loading,memory pinning 等(此处不涉及)
一旦构造了 DataLoader 对象 loader,就可以用来加载数据。缺省情况下,PyTorch 会对数据进行 auto-batching,此时 data 对应一个 batch 的数据。
for data in loader:
# data 是数据集中的一组数据,且已转换成 Tensor
from torchvision import transforms
一、Transforms结构
1、功能
对图片进行一些变换
2、引入库
from torchvision import transforms
3、结构
transforms其实是一个.py文件,当作一个工具箱的话,里面还有很多分隔区和工具等。Traansforms.py文件中包含许多class,class内又有许多方法。
(1)最常用的是Totensor类,作用是把一个PIL/Numpy.ndarray类型的图片转化为tensor类型
(2)ToPILImage(object)方法:把一个图片转化为PILImage类型
(3)Normalize (object)正则化
(4)Resize(object):进行尺寸的变换
(5)CenterCrop(object):对图片进行中心的裁剪
Python图像库PIL(Python Image Library)是python的第三方图像处理库
PIL可以做很多和图像处理相关的事情:
图像归档(Image Archives)。PIL非常适合于图像归档以及图像的批处理任务。你可以使用PIL创建缩略图,转换图像格式,打印图像等等。
图像展示(Image Display)。PIL较新的版本支持包括Tk PhotoImage,BitmapImage还有Windows DIB等接口。PIL支持众多的GUI框架接口,可以用于图像展示。
图像处理(Image Processing)。PIL包括了基础的图像处理函数,包括对点的处理,使用众多的卷积核(convolution kernels)做过滤(filter),还有颜色空间的转换。PIL库同样支持图像的大小转换,图像旋转,以及任意的仿射变换。PIL还有一些直方图的方法,允许你展示图像的一些统计特性。这个可以用来实现图像的自动对比度增强,还有全局的统计分析等。
d2l.use_svg_display ()的作用是设置Matplotib库的图像显示方式为SVG格式,以便在网页中更好地显示图像。
ax = ax.flatten()是numpy.ndarray.flatten的一个函数,即返回一个一维数组。axes.flatten()表示把axes数组降到一维,默认为按行的方向降。