Pytorch框架学习(5)——DataLoder与Dataset

Dataloder与DataSet

1. 人民币二分类

Pytorch框架学习(5)——DataLoder与Dataset
今天主要分享机器学习训练过程的数据处理过程。

  • 数据:
    • 数据收集:Img,Label
    • 数据划分:训练集,验证集,测试集
    • 数据读取:DataLoder(Sampler:生成索引,DataSet:根据索引读取图片Img和标签Label)
    • 数据预处理:transforms
      Pytorch框架学习(5)——DataLoder与Dataset

2. DataLoder与Dataset

2.1 DataLoder

  • torch.utils.data.DataLoder

  • 功能:构建可迭代的数据装载器,训练时,每一个for循环就是从DataLoder中获取一个batchsize大小的数据

    • dataset:Dataset类,决定数据从哪读取及如何读取
    • batchsize:批大小
    • num_works:是否多进程读取数据
    • shuffle:每个epoch是否乱序
    • drop_last:当样本数不能被batchsize整除时,是否舍弃最后一批数据
  • 注意

    • Epoch:所有训练样本都已输入到模型中,成为一个epoch
    • Iteration:一批样本输入到模型中,称之为一个Iteration
    • Batchsize:批大小,决定一个Epoch有多少个Iteration

2.2 DataSet

  • torch.utils.data.Dataset
  • 功能:Dataset抽象类,所有自定义的Dataset需要继承它,并且复写__getitem__()
    • getitem:接受一个索引,返回一个样本

2.3 数据读取

数据读取的三个问题:

  1. 读那些数据:Sampler输出的Index
  2. 从哪读数据:Dataset中的data_dir
  3. 怎么读数据:Dataset的getitem
    Pytorch框架学习(5)——DataLoder与Dataset