函数和包详解:
1.torchvision:torch类型的可视化包,一般计算机视觉和数据可视化需要使用
2.from torchvision import transforms:这个组件经常用于图片的修改(一般数据集中的图片都是PIL格式,使用的时候需要转化为tensor,而在加入函数时常需要转化为nadarry)
3.d2l.use_svg_display():使用什么模式展示图片
4.torchvision.datasets:一般用于图像数据集的下载和获取
eg:torchvision.datasets.FashionMNIST( root=, train=True, transform=, download=True):train:是否为训练集, transform:使用什么转换方式(可以从transforms组件中选择),download:是否下载对应数据集。(.FashionMNIST可以更换为其他数据源)
5对4.对于获得的数据,一般是一个X对一个Y,X每个为(1,行,列){通道数:1(彩色图片是3),图片宽度,图片长度}。数据类型不是元组和列表,但是可以通过直接切片调用,且[i][0]为X,[i][1]为Y。
6.enumerate(zip(axes, imgs):enumerate():生成可以遍历的每个元素有对应序号(0,1,2,3...)的enumerate对象(一种迭代器)
zip():把多个向量按照每列对应的关系组成一个一个小元组
里面每个元素大概为i, (ax, img)形式
7._, axes = d2l.plt.subplots(num_rows, num_cols, figsize=figsize)。第一个参数是个图,一般不用;第二个axes类似于图片的索引的矩阵((行,列))
8。next(iter(data.DataLoader(mnist_train, batch_size=18)))。:next()可以对iter()中的迭代器(元组,列表)使用,一次取一个,没有for只取一次。
9.Dataloader中的数据不能直接索引调用,需要使用next加迭代器调用
10,imshow()可以接收二维,三维甚至多维数组。二维默认为一通道即灰度图像,三维需要在第三个维度指定图像通道数(必须是第三维)
11.subplots函数只能有两个位置参数,一个行数,一个列数。
实现历程:1.数据获取2,函数:标签和标签名对应3.函数:绘制图像列表4.读取小批量5.尝试定义一个可以更改图片比例的批量读取函数