itorch notebookで発生する一般的な問題とその解決策(一)

3341 ワード

torchを勉强する过程で多くの问题に出会って、今1つの简単な総括をして、补充して批判することを歓迎します!エラーメッセージ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ループの後に続くフォーマットが正しくなく、次の例の2行目のコードのNは1つの数ではないので、エラーの例を提示します.
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

解決策:上記の問題と同様に、2行目のforサイクルのNの後に[1][1]を加えてN[1][1]にすればよい%——————————————————————————————————————————————————————%