В коде пользовательских операторов у меня есть такие строки:
for i in xrange(batch_size): numpy.XXX
для лучшей производительности я использую многопроцессорность. Но он застрял.
Возможно, полный пример вашего пользовательского оператора может помочь в диагностике проблемы, но я могу дать пару советов на основе предоставленного вами фрагмента кода:
Не используйте numy в пользовательских операторах. Дело в том, что использование Numpy в конечном итоге заставит MXNet перемещать данные в ЦП, что сделает вычисления медленнее, чем то, что вы могли бы получить с помощью графического процессора. С NumPy невозможно использовать графические процессоры.
Не используйте foreach для циклического просмотра ваших товаров в партии. Из-за соображений производительности все операторы MXNet поддерживают пакетный ввод.
Если вам все еще нужно использовать циклы в ваших пользовательских операторах для других измерений, используйте оператор foreach . Он сделан таким образом, что его можно использовать как с NDArray, так и с Symbol. Изучите учебник как его использовать.
NDArray
Symbol