如何在 Flux.jl 数据加载器中使用自定义采样器?

How to use a custom sampler in your Flux.jl data loader?

我正在尝试加载数据集的一部分,并尝试随机抽样等步骤,看看这对我的模型性能有何影响。我在这里阅读 Flux.jl 文档:https://fluxml.ai/Flux.jl/stable/data/dataloader/ 并尝试查看我是否可以定义自己的自定义采样器,但它没有显示任何内容。是否可以定义这种采样器?

Dataloader 只是一种 Base.iterate 方法被重载的类型

@propagate_inbounds function Base.iterate(d::DataLoader, i=0)
...

所以你应该能够做同样的事情,我想从 dataloader 类型继承并重载 Base.iterate对于你自己的类型,无论你想要什么功能,都应该削减它。只需确保 return 一个包含 (batch, next_index) 的元组。有关详细信息,请参阅 Flux.Dataloader 的源代码。