Я обучил модель Theano на графическом процессоре и теперь хочу настроить ее для работы на сервере (без графического процессора).
Сначала я столкнулся с проблемой, что мою модель нельзя было распаковать, из-за отсутствующего типа CudaNdarray
. Затем, следуя рекомендации из этот пост, я установите для параметра config.experimental.unpickle_gpu_on_cpu
значение True
.
Но затем я получил эту ошибку:
>>> import cPickle
>>> f = open('results/model.save')
>>> cPickle.load(f)
/home/ubuntu/anaconda/lib/python2.7/site-packages/theano/sandbox/cuda/type.py:541: UserWarning: config.experimental.unpickle_gpu_on_cpu is set to True. Unpickling CudaNdarray as numpy.ndarray
warnings.warn("config.experimental.unpickle_gpu_on_cpu is set to True. Unpickling CudaNdarray as numpy.ndarray")
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
File "/home/ubuntu/anaconda/lib/python2.7/site-packages/theano/sandbox/cuda/opt.py", line 2192, in <module>
import theano.sandbox.cuda.extra_ops
File "/home/ubuntu/anaconda/lib/python2.7/site-packages/theano/sandbox/cuda/extra_ops.py", line 424, in <module>
@register_gpu_opt()
NameError: name 'register_gpu_opt' is not defined
Файл model.save
был создан следующим образом:
import cPickle
f = file('results/model.save', 'wb')
model_soft_predict = theano.function([x], layer3.p_y_given_x)
cPickle.dump(model_soft_predict, f, protocol=cPickle.HIGHEST_PROTOCOL)
f.close()