之前一直不知道__len__()函数的作用,直到昨天在加载数据集的时候发现数据被“吞了”。。。
原来6360张图片,加载后就剩30多张了,用debug也没发现哪里有问题。
随手一翻程序,发现__len__()函数写错了,原本应该是list的长度,不小心写成了list的地址。。
def __len__(self):
return len(self.image_list)
所以__len__()的返回值就是最终Dataset加载出来的数据个数,
而torch.utils.data.Dataloader 只是将加载好的数据根据batch_size分批次,不会“吞数据”。