使用CUDA的Torch7(CUnn和CUtorch)- MNIST的Torch演示

我从github上下载了torch的演示程序(https://github.com/torch/demos/tree/master/train-a-digit-classifier)。这段代码在CPU模式下运行良好,但是我想要在CUDA 6.5的GPU模式下使用它。我已经安装了所有的先决条件和CUnn以及CUtorch,并根据我找到的文档和教程,添加了一些代码行使它工作:

开始时:

require 'cunn'
require 'cutorch'

并在模型声明后结束:

model:cuda()

但是,当我运行代码时,出现以下错误:

qlua:/home/ubuntu/Torch7/install/share/lua/5.1/nn/Container.lua:67:
在nn.Sequential的1个模块中:
/home/ubuntu/Torch7/install/share/lua/5.1/nn/THNN.lua:109:v的第3个参数无效(无法将“struct THCudaTensor *”转换为“struct THFloatTensor *”)
堆栈回溯:
[C]:在函数'v'中
/home/ubuntu/Torch7/install/share/lua/5.1/nn/THNN.lua:109:在函数'SpatialConvolutionMM_updateOutput'中
...Torch7/install/share/lua/5.1/nn/SpatialConvolutionMM.lua:79:在函数<_0 ... Torch7/install/share/lua/5.1/nn/SpatialConvolutionMM.lua:69> 
 [C]:在函数'xpcall'中
/home/ubuntu/Torch7/install/share/lua/5.1/nn/Container.lua:63: 在函数'rethrowErrors'中
/home/ubuntu/Torch7/install/share/lua/5.1/nn/Sequential.lua:44: 在函数'forward'中
train-on-mnist.lua:227: 在函数'opfunc'中
/home/ubuntu/Torch7/install/share/lua/5.1/optim/sgd.lua:44: 在函数'sgd'中
train-on-mnist.lua:280: 在函数'train'中
train-on-mnist.lua:383: 在主块中

警告:如果您下面看到一个堆栈跟踪,它不指向此错误发生的地方。请仅使用上面的一个。
堆栈回溯:
[C]:在0xb6ae7bdd处
[C]:在函数'error'中
/home/ubuntu/Torch7/install/share/lua/5.1/nn/Container.lua:67: 在函数'rethrowErrors'中
/home/ubuntu/Torch7/install/share/lua/5.1/nn/Sequential.lua:44: 在函数'forward'中    rain-on-mnist.lua:227: 在函数'opfunc'中
/home/ubuntu/Torch7/install/share/lua/5.1/optim/sgd.lua:44: 在函数'sgd'中
train-on-mnist.lua:280: 在函数'train'中
train-on-mnist.lua:383: 在主块中

编辑: 解决方案是通过使用“:cuda()”将数据,标签和标准转换为Cuda,然后脚本完美运行。谢谢@lejlot

点赞