Как использовать несколько графических процессоров в chainer.training.extensions.Evaluator?

поскольку моя модель поезда находится на нескольких графических процессорах, во время обучения я использую train.extend для проверки моей модели каждую эпоху, но chainer.training.extensions.Evaluator имеет только один аргумент устройства, но сетевой параметр моей модели находится на 2 графических процессорах. как проверить в этой ситуации?


person machen    schedule 10.09.2017    source источник


Ответы (1)


Аргумент device функции Evaluator указывает, на какое устройство должны быть помещены входные данные. Он ничего не делает с параметрами модели.

Если вашей модели также нужны входные данные, загружаемые на несколько графических процессоров, Evaluator не поддерживает такой случай напрямую, поэтому вам необходимо настроить его. Самый простой способ — настроить функцию пользовательского конвертера (которая отвечает за копирование данных на соответствующие устройства). Подробную информацию о converter см. в документе Evaluator. https://docs.chainer.org/en/stable/reference/generated/chainer.training.extensions.Evaluator.html

person Seiya Tokui    schedule 14.09.2017
comment
Вы имеете в виду, что параметр модели и данные могут быть на двух разных графических процессорах? тогда как они могут рассчитывать вместе в этой ситуации? (например, Wx + b, но W и x находятся на 2 разных графических процессорах)? - person machen; 15.09.2017
comment
Я не могу полностью понять это - person machen; 15.09.2017
comment
В этом случае вам нужно вручную отправить x на GPU, на котором существует W. - person Seiya Tokui; 23.10.2017