Я новичок в mxnet
и запускаю скрипт, слегка модифицированный из документации по RNN с глюоном .Я изменил код так, чтобы я работал со строго числовыми временными рядами, а не с проблемой НЛП.Все работало отлично, пока я не изменил эту строку:
context = mx.gpu()
до
GPU_COUNT = 3
context = [mx.gpu(i) for i in range(GPU_COUNT)]
Теперь инициализация переменной вызывает ошибку, которая вызывает сбой, в частности, в этой строке:
model.collect_params().initialize(mx.init.Xavier(), ctx=context)
Строка вызывает эту ошибку:
mxnet.base.MXNetError: include/mxnet/./base.h:388: Invalid context string[]
Я использую mxnet
только несколько дней, поэтому я не очень хорошо знаю, что может пойти не так.Тем не менее, я запустил другой пример сценария - для MLP - где я также поменял несколько графических процессоров на один, и он работал нормально.
Это заставило меня подумать, что это RNN, и действительно, когда я удалил часть кода RNN (так что это просто сеть с прямой связью), он справляется с проблемной строкой с любым допустимым числомГрафические процессоры.Кроме того, я попробовал оба с опцией 'rnn_relu' и опцией 'gru', и они оба потерпели неудачу с одной и той же ошибкой.
Поэтому мой вопрос: do mxnet
RNN работают с многократными графическими процессорами(одна машина) в mxnet
в настоящее время через API глюона? Я не вижу, чтобы это обсуждалось так или иначе в документах, хотя я видел некоторые обсуждения по github относительно некоторыхфункции не реализуются для использования несколькими устройствами.Как бы я подтвердил эту теорию?Также есть другие объяснения, которые я должен проверять?