Как ускорить «ImageFolder» для ImageNet - PullRequest
0 голосов
/ 16 января 2019

Я нахожусь в университете, и все файловые системы находятся в удаленной системе, где бы я ни входил со своей учетной записью, я всегда мог получить доступ к своему домашнему каталогу. хотя я вхожу на серверы GPU через команду SSH. Это условие, при котором я использую серверы графического процессора для чтения данных.

В настоящее время я использую PyTorch для обучения ResNet с нуля на ImageNet, мои коды используют только все графические процессоры на одном компьютере, я обнаружил, что «torchvision.datasets.ImageFolder» займет почти два часа.

Не могли бы вы рассказать о том, как ускорить работу torchvision.datasets.ImageFolder? Большое спасибо.

1 Ответ

0 голосов
/ 28 мая 2019

Почему так долго?
Настройка ImageFolder может занять много времени, особенно когда изображения хранятся на медленном удаленном диске. Причина этой задержки заключается в том, что функция __init__ для набора данных просматривает все файлы в папках изображений и проверяет, является ли этот файл файлом изображения. Для ImageNet это может занять довольно много времени, поскольку необходимо проверить более 1 миллиона файлов.

Что вы можете сделать?
- Как уже указывал Кевин Сан , копирование набора данных в локальное (и, возможно, намного более быстрое) хранилище может значительно ускорить процесс.
- В качестве альтернативы, вы можете создать модифицированный класс набора данных, который не читает все файлы, но опирается на кэшированный список файлов - кэшированный список, который вы готовите только один раз заранее и использоваться для всех прогонов.

...