Pytorch DataLoader конвейерная обработка - PullRequest
2 голосов
/ 15 января 2020

Я ожидаю, что DataLoader будет загружать пакеты одновременно с основным процессом, заполняя буфер, как только пакет будет использован из буфера. Однако, когда я отслеживаю использование графического процессора и порядок загрузки и выполнения, я вижу несколько другое поведение:

  1. загрузка всего буфера (ожидается)
  2. , потребляющая весь буфер при выполнении из всех пакетов, пока буфер не будет пуст (не ожидается)
  3. загрузка всего буфера снова без параллельного выполнения (не ожидается)
  4. Перейти к 2.

Это очевидно, приводит к провалам в использовании графического процессора при выполнении шага 3.

Я установил:

num_workers> = 1

pin_memory = True / False (не влияет на описанное поведение )

Кто-нибудь испытывал то же самое? В чем может быть проблема?

...