文章来自:微信公众号【机器学习炼丹术】。一个干货个人公众号。
文章目录:
- 1 Dataset基类
- 2 构建Dataset子类
- 2.1 __Init__
- 2.2 __getitem__
- 3 dataloader
1 Dataset基类
PyTorch 读取其他的数据,主要是通过 Dataset 类,所以先简单了解一下 Dataset 类。在看很多PyTorch的代码的时候,也会经常看到dataset这个东西的存在。Dataset类作为所有的 datasets 的基类存在,所有的 datasets 都需要继承它。
先看一下源码:

这里有一个__getitem__
函数,__getitem__
函数接收一个index,然后返回图片数据和标签,这个index通常是指一个list的index,这个list的每个元素就包含了图片数据的路径和标签信息。之后会举例子来讲解这个逻辑。
其实说着了些都没用,因为在训练代码里是感觉不到这些操作的,只会看到通过DataLoader就可以获取一个batch的数据,这是触发去读取图片这些操作的是DataLoader里的__iter__(self)
(后面再讲)。
2 构建Dataset子类
下面我们构建一下Dataset的子类,叫他MyDataset类: