【week2】数据读取机制Dataloader与Dataset

数据

数据收集

Img,Label

数据划分

train:训练集,训练模型
valid:验证集,验证模型是否过拟合(可以理解为用验证集挑选模型)
test:测试集,测试挑选出来模型的性能

数据读取

DataLoader

sampler:生成索引
DataSet:Img,Label,根据索引读取图片和标签

torch.utils.data.DataLoader

【week2】数据读取机制Dataloader与Dataset_第1张图片

功能:构建可迭代的数据装载器

  1. dataset:Dataset类,决定数据从哪读取以及如何读取
  2. batchsize:批大小
  3. num——works:是否多进程读取数据
  4. shuffle:每个epoch是否乱序
  5. drop_last:当样本数不能被batchsize整除时,是否舍弃最后一批数据

Epoch:所有训练样本都已输入到模型中,称为一个Epoch
Iteration:一批样本输入到模型中,称之为一个Iteration
Batchsize:批大小,决定一个Epoch有多少个Iteration
样本总数:80,Batchsize:8
1 Epoch = 10 Iteration
样本总数:87,Batchsize:8
1 Epoch = 10 Iteration ?drop_last = True
1 Epoch = 11 Iteration ? drop_last = False

1)读哪些数据?
Sampler输出的Index
2)从哪读数据?
Dataset中的data_dir
3) 怎么读数据?
Dataset中的getitem
【week2】数据读取机制Dataloader与Dataset_第2张图片

首先,在for循环中进入DataLoader,然后再选择是多进程还是单进程,进入DataLoaderIter后,使用Sampler中,获取到Index,将Index给DatasetFetcher,DataFetcher中调用Dataset,Dataset根据索引在getitem中从硬盘取出相应的Img和Label,读取了一个batch大小的数据后,collate_fn将数据整理成Batch Data的形式,然后输入模型中去训练。

你可能感兴趣的:(pytorch,学习笔记)