pytorch数据加载之torch.utils.data

pytorch数据加载能力的核心是torch.utils.data.DataLoader类,它表示数据集上的Python iterable,支持如下特性:

  • map-style和iterable-style的数据集
  • customizing data loading order
  • automatic batching
  • single- and multi-process data loading
  • automatic memory pining

 

  1. Data Loading Order 和 Sampler

    对于iterable-style数据集,数据加载顺序完全由user定义的iterable控制。

    对于map-style数据集,将使用sampler指定加载数据时的keys/indices。

    默认将会使用Dataloader的shuffle参数自动构建一个连续的或者随机的sampler。

  2. automatic batching
    When batch_size (default 1) is not None, the data loader yields batched samples instead of individual samples. 
    Disable automatic batching: When both batch_size and batch_sampler are None (default value for batch_sampler is already None), automatic batching is disabled. Each sample obtained from the dataset is processed with the function passed as the collate_fn argument. 
    When automatic batching is disabled, the default collate_fn simply converts NumPy arrays into PyTorch Tensors, and keeps everything else untouched.
  3. single- and multi-process data loading
    将num_workers设置为正整数,将会触发相应数量的多进程数据加载。在这种模式下,当创建Dataloader的迭代器的时候,num_workers的进程将被创建,这时,dataset、collate_fn、worker_init_fn被传递给每一个进程,用于初始化和获取数据。
    For map-style datasets, the main process generates the indices using sampler and sends them to the workers. So any shuffle randomization is done in the main process which guides loading by assigning indices to load.
  4. memory pining
    当主机到GPU的拷贝来自固定(页锁定)内存时,它们的速度要快得多。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值