[Pytorch]CNN图像预测编程项目-Prepare the data


    • Prepare the data 准备数据

ETL

E:Extract 提取-从源获取Fashion-MNIST图像数据
T:Transform 转换-将图像数据转换为Pytorch张量形式
L:Load 加载-将我们的图像数据放入一个易于访问的对象

torchvision

torchvision资源
1.Datasets(like MNIST and Fashion-MNIST) 数据集
2.Models 模型
3.Transforms 转换
4.Utils 实用程序
Dataset 数据集
DataLoader 数据加载器
__getitem__:从数据集中的一个特定索引位置获取一个元素
__len__:返回数据集的长度

提取&转换

train_set 训练集
root 根目录:数据所在的硬盘上的位置
train 训练参数:我们希望数据用于训练集
download 下载参数:如果数据没有出现在我们指定的根目录下,就下载这些数据
transform 转换参数:在数据集元素上执行的转换组合
transforms.Compose 转换组合
transforms.ToTensor 转换为张量

加载

数据集信息

torch.set_printoptions:设置Pytorch打印结果的行宽
len 长度:查看数据集中的图像数量
train_set.train_labels:数据集的标签张量,对实际的类名或标签进行编码,如0代表T恤,9代表踝靴
train_set.train_labels.bincount:数据集的标签张量的频数分布,bincount一致说明数据集平衡,反之则不平衡
版本更迭导致的变动:train_labels已改为targets

迭代

1.要从训练集对象中访问一个单独的元素,我们首先将一个训练集对象传递给Python内置的iter函数(迭代器),它返回一个表示数据流的对象,然后我们可以进行迭代。有了数据流,我们可以使用Python内置的next函数来获取数据流中的下一个数据元素。
2.sample包含了2项,这是因为训练集中包含的是图像标签对,我们从训练集中获取的每个sample都包含图像数据张量以及相应的标签张量。
3.因为sample是一个Python序列类型,我们可以使用一个被称为序列解压缩的概念来分配图像和标签。

列表拆装/解构对象

法一:

image,label = sample

法二:

image = sample[0]
label = sample[1]

批处理

1.我们对变量名使用复数形式,如images,labels,表示我们期望每个都有多个。

猜你喜欢

转载自blog.csdn.net/weixin_66896881/article/details/128613000