只有在嘗試使用炬力的CUDA功能而不是依賴CPU後纔出現此問題。在`CudaTensor`上使用`apply`方法的異常
我試圖初始化一個卷積神經網絡的權重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
返回的值轉換爲 一個元素CudaTensor
,但它沒有幫助。
在這個問題中,我看不到CUDA內核代碼,CUDA工具包/庫或CUDA運行時錯誤。事實上,lua編譯器在對後端CUDA支持的框架的調用中生成無效參數錯誤並不意味着這個問題,就像書面形式,與CUDA有任何關係。如果您直接爲CUDA API使用cutorch包裝並遇到問題,或者獲取CUDA運行時錯誤,則可能需要將其標記爲CUDA問題。但你顯然不是,因此,這不是一個CUDA問題。 – talonmies