cuda torch整合 - CudaTensor 类未找到

可能是因为我对这里的依赖关系栈不太熟悉,但我已安装了一个使用Torch和CUDA的深度学习项目: https://github.com/donglixp/lang2logic.

运行项目(例如发出:./pretrain.sh seq2seq jobqueries lstm),我得到了这个错误:

THCudaCheck FAIL file=/tmp/luarocks_cutorch-scm-1-1028/cutorch/lib/THC/THCGeneral.c line=66 error=30 : unknown error
package cunn not found!
package cutorch not found!
如果已安装cutorch和cunn,则CUDA工具包可能配置不正确。
检查您的CUDA工具包安装,重新构建cutorch和cunn,然后重试。
落回CPU模式
~/torch/install/share/lua/5.1/torch/File.lua:343: unknown Torch class <torch.CudaTensor>

顺便说一下,最后一个错误是这个自我说明的lua代码片段发出的,它检查CudaTensor类的可用性:

if not torch.factory(className) then
    error(string.format('unknown Torch class <%s>', tostring(className)))
end

在获得这个错误之后,我还通过以下命令安装了Lua的cutorchcunn,看起来安装成功了。

luarocks install cutorch
luarocks install cunn

但我仍然遇到同样的错误。

我注意到唯一的安装问题是luarocks install class似乎什么也没有做,而我并不是在科学Linux上运行,而是在Ubuntu 16.04上运行。

我通过sudo apt-get install nvidia-cuda-toolkit安装了CUDA本身。

您将如何解决此集成错误?

谢谢!

点赞
用户6073048
用户6073048

我本来想只留个评论的,但由于我还没有足够的声望,所以只能在这里留言了。

看起来你遇到了安装问题。最显而易见的解决方法是通过 rm -rf ~/torch 祛除 torch,在按照你提供链接的说明进行重新安装(将 ClassNLLCriterion.cu 文件替换为他们的版本)。通常,按照这里的说明应该会为你安装 cutorchcunn,但如果你愿意,也可以通过 luarocks 安装。这也是为什么 luarocks install class 执行不了任何操作,因为它已经安装好了。

关于你的评论,torch.CudaTensor 如其名,是在 cutorch 中定义的 torch 类。它就像来自 torch 库的任何其他 Tensor 类一样工作,但是它存在于 GPU 上。

更多关于你如何安装 torch 的信息会有所帮助。

当然,你还需要一个与 CUDA 兼容的设备才能使用 cutorch。

2017-02-06 13:47:36