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

来源:互联网 发布:mac版 iphoto 编辑:程序博客网 时间:2024/05/20 20:17

在学习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}}]    endend

解决方案:在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]    endend

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

0 0
原创粉丝点击