将CudaNdarraySharedVariable转换为TensorVariable
我正在尝试把一个 pylearn2
的GPU模型转换成可以在CPU上运行的版本,以便在远程服务器上进行预测。请问我该如何把 CudaNdarraySharedVariable
转换成 TensorVariable
,这样就能避免在没有GPU的机器上调用CUDA代码时出现错误?我发现实验性的Theano选项 unpickle_gpu_to_cpu
似乎让一些 CudaNdarraySharedVariable
留了下来(特别是 model.layers[n].transformer._W
)。
1 个回答
1
对于一个普通的 CudaNdarray 变量,可以这样做:
'''x = CudaNdarray... x_new=theano.tensor.TensorVariable(CudaNdarrayType([False] * tensor_dim))
f = theano.function([x_new], x_new)
converted_x = f(x)
'''