Dataloder与DataSet
1. 人民币二分类
今天主要分享机器学习训练过程的数据处理过程。
- 数据:
- 数据收集:Img,Label
- 数据划分:训练集,验证集,测试集
- 数据读取:DataLoder(Sampler:生成索引,DataSet:根据索引读取图片Img和标签Label)
- 数据预处理:transforms
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 数据读取
数据读取的三个问题:
- 读那些数据:Sampler输出的Index
- 从哪读数据:Dataset中的data_dir
- 怎么读数据:Dataset的getitem
来源:CSDN
作者:Aidanmomo
链接:https://blog.csdn.net/aidanmo/article/details/104059080