我正在尝试将一个pylearn2
的GPU模型转换为CPU兼容版本,以便在远程服务器上进行预测——我如何将CudaNdarraySharedVariable
转换为TensorVariable
,以避免在没有GPU的机器上调用cuda代码时出现错误?实验性的theano标志unpickle_gpu_to_cpu
似乎留下了一些CudaNdarraySharedVariable
(具体来说是model.layers[n].transformer._W
)。
回答:
对于普通的CudaNdarray变量,像这样的代码应该可以工作:
”’x = CudaNdarray… x_new=theano.tensor.TensorVariable(CudaNdarrayType([False] * tensor_dim))
f = theano.function([x_new], x_new)
converted_x = f(x)”’