2016-03-28 7 views
0

私はこの特定のトーチの声明がどのように機能するかを理解しようとしています。このtorchステートメントの構文はどのように機能しますか?

Iラインは

trdata[{ {1,trainData.data:size(1)} }] = trainData.data 

を読み出しIトーチ内のデータのスライスを通して読んでいたと私は

t4[{ {},1 }] 
ようなものを理解

https://github.com/torch/tutorials/blob/master/2_supervised/1_data.lua#L115

行番号115を参照してい

は、「すべてのrテクスチャt4の「第1列」となる。

しかし、上記の私の声明では、外側に別の{}の内側に{}があります。どういう意味ですか?

私は

trainData.data:size(1) 

は、おそらく画像の数であるtrainDataのバッチサイズを参照していることを理解してください。

ありがとうございました

答えて

1

これは狭い範囲で動作します。これらdetailed explanationsを参照してください:

あなたはダブルカーリーブレースを持っている場合、それはテンソルのnarrowを返し、narrow編テンソルは(それが唯一の要素を持っている場合でも)常にテンソルです。二重中括弧では、テンソルが狭められる範囲を指定することができますが、単一の中括弧ではできません。たとえば、ten[{{1,2},1}]は1次元のテンソル2ten[{{1,2},{2}}]の場合は2次元テンソル2x1を返します。

例えば:

th> trsize = 10 
th> trdata = torch.Tensor(trsize, 3, 32, 32) 
th> subdata = trdata[{ {1, 5} }] 
th> subdata:size() 
    5 
    3 
32 
32 
[torch.LongStorage of size 4] 
関連する問題