您的位置:首页 > 编程语言 > Lua

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

2015-11-03 14:19 330 查看
在学习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]即可

%—————————————————————————————————————-%
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  lua-torch