我试图了解这个特殊的火炬声明是如何运作的。
我指的是
的第115行https://github.com/torch/tutorials/blob/master/2_supervised/1_data.lua#L115
该行读取
trdata[{ {1,trainData.data:size(1)} }] = trainData.data
我正在阅读火炬中的数据切片,我理解像
这样的东西t4[{ {},1 }]
表示您指的是张量t4的“所有行和第1列”。
但是,在我上面打印的声明中,我们在另一个{}内部有一个{}。这是什么意思?
我明白了
trainData.data:size(1)
指的是trainData的批量大小,可能是图像的数量。
由于
答案 0 :(得分:1)
这是一个狭隘的行为。请参阅这些detailed explanations:
当你有双花括号时,它返回张量的
~/dimsum-v2 ⮀ master● ⮀ 24m ⮀ bundler -v ⮂ ruby-2.0.0-p643 Bundler version 1.11.2
,narrow
ed张量总是张量(即使它只有一个元素)。使用双花括号,您可以指定张力将缩小的范围,这对于单个花括号是不可能的。例如,您可以执行narrow
,这将是维度ten[{{1,2},1}]
的1D张量,如果您执行2
,它将返回大小为ten[{{1,2},{2}}]
的2D张量。< / p>
e.g:
2x1