我尝试在火炬教程中运行代码,但是当我想使用:cuda()
在gpu上运行它时,我一直收到以下错误
/ opt / zbstudio / bin / linux / x64 / lua:/home/andybug/torch/install/share/lua/5.1/nn/THNN.lua:110:错误的参数#3到'v' (无法将'struct THCudaTensor *'转换为'struct THCudaLongTensor *') 堆栈追溯: [C]:在函数'v'中 /home/andybug/torch/install/share/lua/5.1/nn/THNN.lua:110:在函数'ClassNLLCriterion_updateOutput'中 ... bug / torch / install / share / lua / 5.1 / nn / ClassNLLCriterion.lua:41:在函数'forward'中 ... ug / torch / install / share / lua / 5.1 / nn / StochasticGradient.lua:35:在功能'火车'中 / home / andybug / Documents / NLP / lua torch / torch-prac / main.lua:74:in main chunk [C]:在0x00404f08
用谷歌搜索这个问题,但没有有效的答案,尝试重新安装nn,cunn,.etc,这些都没有用。
答案 0 :(得分:0)
在将Coco数据作为Cuda张量加载时,我遇到了同样的问题。由于加载Pascal2012数据很好,我认为我遇到了数据加载器或迭代器的问题(我使用的是torchnet&n的并行数据集迭代器)。在重新安装cutorch时,我发现有些问题。然后重新安装了Cuda(在我的情况下为8)因为它与其他版本(7.5)相撞并最终从头开始安装了火炬。现在一切都像魅力一样。
答案 1 :(得分:-1)
传递给ClassNLLCriterion的目标(前进中的第二个参数)需要是CudaTensor。