2

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

  1. 加载整个缓冲区(预期)
  2. 通过执行所有批次来消耗整个缓冲区,直到缓冲区为空(不是预期的)
  3. 在没有并行执行的情况下再次加载整个缓冲区(不是预期的)
  4. 转到 2。

这显然会导致在第 3 步时 GPU 利用率下降。

我设置:

num_workers >= 1

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

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

4

0 回答 0