【发布时间】:2016-06-28 01:57:59
【问题描述】:
这个问题是在尝试使用torch的CUDA功能而不是依赖CPU之后才出现的。
我正在尝试初始化卷积神经网络权重的CudaTensor。函数如下:
function fill_0normal(t,sigma)
t:apply(function() return torch.normal(0,sigma) end)
end
它的调用方式如下:
fill_0normal(m.weight, sigma)
m 是卷积模块,m.weight 是 CudaTensor,sigma 是浮点值。
我得到的异常如下:
/hpc/sw/torch7-2016.02.09/bin/luajit: invalid arguments: number number
expected arguments: *CudaTensor* [float] [float]
stack traceback:
[C]: at 0x2aaaaf63e040
[C]: in function 'func'
/hpc/sw/torch7-2016.02.09/share/lua/5.1/torch/FFI.lua:117: in function 'apply'
/hpc/sw/torch7-2016.02.09/share/lua/5.1/cutorch/Tensor.lua:3: in function 'apply'
setup_model.lua:4: in function 'fill_0normal'
setup_model.lua:16: in function 'init_conv'
setup_model.lua:43: in function 'init_module'
setup_model.lua:90: in function 'initializeNetRandomly'
assignment3-cifar10.lua:49: in main chunk
[C]: in function 'dofile'
.../torch7-2016.02.09/lib/luarocks/rocks/trepl/scm-1/bin/th:145: in main chunk
[C]: at 0x00406010
关于什么可能导致它的任何想法?
我也尝试将torch.normal返回的值转换成
一个 1 元素 CudaTensor,但它没有帮助。
【问题讨论】:
-
我在这个问题中没有看到 CUDA 内核代码、CUDA 工具包/库或 CUDA 运行时错误。 lua 编译器在调用已在后端支持 CUDA 的框架时生成无效参数错误这一事实并不自动意味着这个问题,正如所写的那样,与 CUDA 有任何关系。如果您直接使用 CUDA API 的 cutorch 包装器并遇到问题,或者遇到 CUDA 运行时错误,则将其标记为 CUDA 问题可能是合适的。但你显然不是,因此,这不是一个 CUDA 问题。
标签: lua neural-network torch conv-neural-network