Я ожидаю, что DataLoader будет загружать пакеты одновременно с основным процессом, заполняя буфер, как только пакет будет использован из буфера. Однако, когда я отслеживаю использование графического процессора и порядок загрузки и выполнения, я вижу несколько другое поведение:
- загрузка всего буфера (ожидается)
- , потребляющая весь буфер при выполнении из всех пакетов, пока буфер не будет пуст (не ожидается)
- загрузка всего буфера снова без параллельного выполнения (не ожидается)
- Перейти к 2.
Это очевидно, приводит к провалам в использовании графического процессора при выполнении шага 3.
Я установил:
num_workers> = 1
pin_memory = True / False (не влияет на описанное поведение )
Кто-нибудь испытывал то же самое? В чем может быть проблема?