1.for i, data in enumerate(train_loader):
2._SingleProcessDataLoaderIter or _MultiProcessingDataLoaderIter
3.进入单进程dataIter中最主要的_next_data()函数,在next中会获取index和data
此函数告诉我们每个iteration都读取哪些数据
4.光标跳转(最后一个键),进入index = self._next_index()
中查看它如何获取index,
点击两次,进入sampler.py(采样器),告诉我们每一个batch_size该读取哪些数据
5.跳出函数,到_next_data()函数,查看其中data(直接跳转),查看到index为[86, 153, 82, 152, 158, 57, 56, 27, 79, 61, 118, 77, 109, 23, 159, 128]
6.还是在此有了index会获取data,进入dataset_fetcher
在此fetch.py类中实现了具体的数据读取,第44行中正式调用了dataset
(data拼接成一个list)
7.步进查看过程,到自定义my_dataset中的getitem,获取数据img和标签label
看看img为tensor:3(RGB)
8.跳出,到fetcher.py中的collate_fn,collate_fn为数据整理器,将16个数据整理为一个batch的形式,data为list:16
9.按第一个键,
10.返回数据,data是list形式,第一个元素是图像,第二个元素是标签。接下来可以对图像进行训练。
自定义dataset,DataLoader的debug
最新推荐文章于 2024-02-20 16:11:37 发布