将CudaNdarraySharedVariable转换为TensorVariable

1 投票
1 回答
513 浏览
提问于 2025-04-18 18:59

我正在尝试把一个 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)

'''

撰写回答