Я пытаюсь запустить свой код в кластере SLURM со следующей конфигурацией - 1 узел, 2 графических процессора Nvidia 1080Ti, 8 ЦП и 8 ГБ ОЗУ на ЦП.
Я реализую ResNeXt с набором данных, который содержит около 1 миллиона 32x32 изображений. Когда я пытаюсь запустить этот код с torchvision.datasets.ImageFolder
и num_workers
= 4-8, он выдает ошибку «превышена виртуальная память», запрашивая 341 ГБ данных! Это кажется немного абсурдным. Эта ошибка выдается в первом цикле trainLoader, когда он готовит первый пакет для кода.
Изначально я предполагал, что это была ошибка в моей программе, но моя программа прекрасно работает с num_workers
= 8 в Google Colab. Моя программа работает, только когда я установил num_workers
= 0. При num_workers
= 2 она работает в течение двух эпох, прежде чем выдать одну и ту же ошибку.