可能我在这里对依赖项堆栈不够熟悉,但我已经安装了一个使用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!
If cutorch and cunn are installed, your CUDA toolkit may be improperly configured.
Check your CUDA toolkit installation, rebuild cutorch and cunn, and try again.
Falling back on CPU mode
~/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的cutorch
和cunn
,这些命令似乎已经完成。
luarocks install cutorch
luarocks install cunn
但我仍然得到同样的错误。
我注意到的唯一安装怪癖是luarocks install class
似乎什么也没做,而且我没有像原作者那样在Scientific Linux上运行,而是在Ubuntu 16.04上运行。
我通过以下方式安装了CUDA:sudo apt-get install nvidia-cuda-toolkit
您如何解决此集成错误?
谢谢!
答案 0 :(得分:0)
我本来希望只留下评论,但我没有足够的声誉,所以这里也是如此。
好像你有安装问题。最明显的尝试是通过rm -rf ~/torch
完全卸载火炬,并按照链接的说明重新安装它(用他们的替换ClassNLLCriterion.cu文件)。通常,遵循说明here应该为您安装cutorch
和cunn
,但您可以随时通过luarocks
安装它们。这也是luarocks install class
没有做任何事情的原因,因为它已经安装了。
在回答您的评论时,torch.CudaTensor
顾名思义是cutorch中定义的火炬类。它的行为与火炬库中的任何其他Tensor
类一样,但它存在于GPU上。
有关如何安装火炬的更多信息可以提供帮助。
当然,您还需要一个兼容CUDA的设备才能使用cutorch。