gluon-data三个工具

官方文档 https://mxnet.incubator.apache.org/api/python/gluon/data.html

gluon对于训练数据的准备,提供两个个工具:

  • Dataset
  • Dataloader

以下分别来解释。

Dataset

Dataset是对一个数据集的抽象,用户需要关注4个方法:

  • __len__:获取数据集的长度,比如图片总数量。
  • __getitem__:获取数据集中一条数据的方法,用户需要定义自己的这个方法。
  • transform:返回一个dataset,从中获取的每条数据,都经过了数据处理得到。默认只在调用的时候才做数据处理,lazy方式。
  • transform_first:和上一个的区别是,只对每条数据的第一个数据进行处理。常用场景是,每条数据包括图像和标签,只想对图像进行处理,就可以用这个。

Dataloader

Dataset获取数据,返回一个batch数据,用于训练。
最简单的使用方法:

train_loader = gluon.data.Dataloader(train_dataset, shuffle=True, batch_size=64)
val_loader = gluon.data.Dataloader(val_dataset, shuffle=False, batch_size=64)

如果不想shuffle,想自己指定获取数据的方法,可以使用sampler
gluon提供两种sampler:RandomSampler, SequentialSampler,随机和顺序。
gluon还提供一个Sampler:BatchSampler,每次迭代返回一个minibatch数据。注意,如果在Dataloader指定了batch_sampler,这些参数“batch_size, shuffle, sampler, last_batch”就都不要使用了。

你可能感兴趣的:(mxnet)