只有在尝试使用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
,但它没有帮助。
答案 0 :(得分:2)
你可以直接调用:张量正常。
function fill_0normal(t,sigma) do
t:normal(0, sigma)
end