Machine learning Pytorch数据加载器流水线

Machine learning Pytorch数据加载器流水线,machine-learning,deep-learning,pytorch,pipelining,dataloader,Machine Learning,Deep Learning,Pytorch,Pipelining,Dataloader,我希望DataLoader将批同时加载到主进程中,在从缓冲区中消耗批时立即填充缓冲区。但是,当我跟踪GPU的利用率以及加载与执行的顺序时,我看到了一些不同的行为: 加载整个缓冲区(预期) 通过执行所有批处理消耗整个缓冲区,直到缓冲区为空(非预期) 再次加载整个缓冲区而不并行执行(不期望) 转到2 在步骤3中,这显然会导致GPU利用率下降 我设定: 工人数量>=1 pin_memory=True/False(不影响所描述的行为) 有没有人有过同样的经历?可能是什么问题?我找到了这种行为的原因,并在

我希望DataLoader将批同时加载到主进程中,在从缓冲区中消耗批时立即填充缓冲区。但是,当我跟踪GPU的利用率以及加载与执行的顺序时,我看到了一些不同的行为:

  • 加载整个缓冲区(预期)
  • 通过执行所有批处理消耗整个缓冲区,直到缓冲区为空(非预期)
  • 再次加载整个缓冲区而不并行执行(不期望)
  • 转到2
  • 在步骤3中,这显然会导致GPU利用率下降

    我设定:

    工人数量>=1

    pin_memory=True/False(不影响所描述的行为)


    有没有人有过同样的经历?可能是什么问题?

    我找到了这种行为的原因,并在以下位置找到了解决方案: