Использование многопроцессорной обработки в пользовательских операторах - PullRequest
0 голосов
/ 29 октября 2018

В коде пользовательских операторов у меня есть такие строки:

 for i in xrange(batch_size):
    numpy.XXX

для лучшей производительности я использую многопроцессорность. Но он застрял.

1 Ответ

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

Возможно, полный пример вашего пользовательского оператора может помочь в диагностике проблемы, но я могу дать пару советов на основе предоставленного вами фрагмента кода:

  1. Не используйте numy в пользовательских операторах. Дело в том, что использование Numpy в конечном итоге заставит MXNet перемещать данные в ЦП, что сделает вычисления медленнее, чем то, что вы могли бы получить с помощью графического процессора. С NumPy невозможно использовать графические процессоры.

  2. Не используйте foreach для циклического просмотра ваших товаров в партии. Из-за соображений производительности все операторы MXNet поддерживают пакетный ввод.

  3. Если вам все еще нужно использовать циклы в ваших пользовательских операторах для других измерений, используйте оператор foreach . Он сделан таким образом, что его можно использовать как с NDArray, так и с Symbol. Изучите учебник как его использовать.

...