我们之前用torchvision加载了pytorch的网络数据集,现在我们用Dataset加载自己的数据集,并且使用DataLoader做成训练数据集。
图像是从网上下载的,网址是 点这里,标签是图像文件夹名字。下载完成后作为自己的数据集。
1.加载自己的数据集的思路
1)要完成继承自Dataset的类的构建
由于Dataset是一个包含了虚函数的类,因此继承Dataset后,必须实现这些虚函数。
2)第一个要完成的是__init__的构建,一般的方法是在__init__(self,root_dir, label_dir)中设置数据集的根目录root_dir,和类别数据集label_dir,然后用os.listdir得到label_dir中的图像名字
3)第二个要完成的就是
__getitem__(self, item):
item就是所要取数据的索引,这个函数主要是返回一个训练数据(比如一个图像),和一个结果数据,比如(该图像的分类结果是一个ant),因此用到刚os.listdir所列出的文件名字,用os.path.join加入路径,得到图像的绝对路径,用PIL导入图像,并给label赋值,返回图像和;abel即可。
4)第三个要实现的就是数据集的长度
__len__(self):
可以直接len(os.listdir所列出的文件名的数组),就可以得到数据集的长度。
2.需要注意的问题
我在调试的时候发现