PyTorch DataLoader и параллелизм - PullRequest
0 голосов
/ 20 ноября 2018

Я создал класс, который расширяет DataSet для загрузки изображений для задачи сегментации, поэтому один вход и один выход.Каждый раз, когда вызывается метод getitem, этот класс выполняет необходимые операции для увеличения данных как на входе, так и на выходе, и он отлично работает.

Однако, когда я использую этот класс с PyTorch DataLoader, преобразование вводане совпадают с выходными преобразованиями.Чтобы выполнить те же операции, мне нужно получить / установить состояния случайных операций / классов, и я уверен, что DataLoader делает то же самое, поэтому между ними возникает конфликт.

Как я могу это исправить?

1 Ответ

0 голосов
/ 21 ноября 2018

Решение состоит в том, чтобы создать локальный экземпляр всех классов Random, которые используются, а DataLoader - нет.При этом все выполняемые случайные преобразования соответствуют случайным значениям / состояниям, на которые DataLoader не влияет.Обычный способ сделать это - создать класс и поместить все преобразования внутрь него.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...