itorch notebook上遇到的常见问题及其解决方案(一)

在学习torch的过程中遇到了不少问题,现做一个简单的总结,欢迎补充并批评指正!
%————————————————————————————————-%
错误提示1:

unexpected symbol near ':'

错误举例:

p = 602:add(N+1)   --截取有问题的一行代码

分析及解决方案:在使用add() mul() div()等函数时,冒号前面不能使用常数,应提前将常数赋值给一个变量,如将602改为变量即可,即令a = 602,p = a:add(N+1)
%————————————————————————————————-%
错误提示2:

inconsistent tensor size at /home/torch/pkg/torch/lib/TH/generic/THTensorCopy.c:7

原因分析:矩阵或者张量元素的维度大小不匹配,可能是矩阵内元素表示方法不正确
错误举例:

d=image.load('test.png')    --test.png为1*301*301大小的图片
dd = d[1]
N = torch.rand(1,1):fill(2)
I = torch.Tensor(305,305):fill(0)
for i=1,2 do
    for j=1,2 do
        ii = (N+1):add(-i)
        jj = (N+1):add(-j)
        I[i][j]=dd[{{ii},{jj}}]
    end
end

解决方案:在I[i][j]=dd[{{ii},{jj}}]这一句后面补充上[1][1]即可
即:I[i][j]=dd[{{ii},{jj}}][1][1]
%————————————————————————————————-%
错误提示3:

'for' limit must be a number

原因分析:for循环后面所接的格式不对,下面的例子中第二行代码中的N不是一个数,因此提示错误
错误举例:

N = torch.rand(1,1):fill(2)
for i=1,N do
    for j=1,N[1][1] do
        ii = (N+1):add(-i)
        jj = (N+1):add(-j)
        I[i][j]=dd[{{ii},{jj}}][1][1]
    end
end

解决方案:同上面一个问题类似,在第二行的for循环的N后面加上[1][1]变为N[1][1]即可
%—————————————————————————————————————-%

你可能感兴趣的:(torch,Lua)