【torch】dataset, dataloader, sampler

【dataset】

主要工作:处理idx到sample的映射,每个sample有x, y或者其他的

分两种:map式,iterable式

map dataset的实现:

1、数据长度:__len__

2、取数据:__getitem__

iterable dataset要继承data.IterableDataset

复写 __iter__方法,主要用于流式输入,返回一个迭代器

【dataloader】

dataloader解决的问题:哪些数据?数据在哪里?怎么读? 

dataloader的工作:

哪些数据 -> sampler -> indices

数据在哪儿 -> dataset -> data

怎么读 -> collate_fn

一般来讲只要DataLoader类就已经足够了,如果对sampler有要求,就复写sampler, 如果对collate_fn有要求就复写collate_fn。

dataloader是个iterable,会返回一个iterator是IterDataLoader对象。__next__函数是要取数据,

sampler是个iterable,返回个iterator

collate_fn

原文地址:https://www.cnblogs.com/yesuuu/p/15797706.html