Pytorch DataParallel не работает в алгоритмах RL - PullRequest
0 голосов
/ 12 апреля 2019

Я хотел протестировать multi-gpu с простым алгоритмом DQN для среды Cartpole, и кажется, что это либо невозможно, либо я что-то упустил.Я запускаю код на машине, которая имеет два gpus.У меня есть мой код здесь: https://github.com/oroojlooy/dqn_pytorch

Проблема в том, что на каждом шаге поезда мне нужно получить целевое значение, которое является объектом DataParallel, а затем умножить его на некоторые элементы в пакете (который являетсятензор), а затем использовать выход для получения потерь.Когда я умножаю целевое значение на тензор, я получаю эту ошибку:

RuntimeError: The size of tensor a (64) must match the size of tensor b (128) at non-singleton dimension 1

Поскольку DataParallel разделил партию на две части, у меня есть целевая форма 2*64 вместо 128.Я могу изменить тензор до 2*64 и заставить его работать, но я не буду работать, если у меня будет больше gpus, и изменение формы будет трудным и грязным.Я думал, что должен быть лучший способ сделать это.Я ценю любую помощь или комментарий.

Афшин

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