这个火炬声明的语法如何工作?

时间:2016-03-28 10:48:04

标签: lua torch

我试图了解这个特殊的火炬声明是如何运作的。

我指的是

的第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的批量大小,可能是图像的数量。

由于

1 个答案:

答案 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