2016-05-26 23 views
2

我有一个数组命名大小的xTainnDatax1的Lua Torch7数组索引符号

我初始化它作为

xTrain = torch.linspace(-1,1,nData) 

访问阵列,笔者采用xTrain[{{i}}]

可以请你解释一下符号?为什么不简单地xTrain[i]

请在这里参考笔者的代码对编程没有21- https://www.cs.ox.ac.uk/people/nando.defreitas/machinelearning/lecture4.pdf

作为一个附加的笔记记录

xTrain=torch.linespace(-1,1,10) 

当我做

th> print(xTrain[1])  
-1 

th> print(xTrain[{1}]) 
-1 

th> print(xTrain[{{1}}]) 
-1 
[torch.DoubleTensor of size 1] 

为什么它也是在第3打印[torch.DoubleTensor of size 1]案件。我的猜测是在前2个案例中,它返回了该位置的标量值,而在第三个案例中,DoubleTensor

回答

1

好的起始位置是Lua manual,它的语法和开头。你可以看到,是什么在Lua意义的{...}

{...}    -- creates a list with all vararg parameters 

因此,在短期的{1}创建了单值1.重复一次更多的列表你有含含单号1名单列表。

如果xTrain是简单表,它可能会失败,因为使用列表很难索引,但Lua支持metatables,所以实际值不用于索引表,但传递给一些需要注意的函数的名单。

还阅读关于Tensor类的更多信息,该函数从torch.linespace()函数返回是一个很好的地方。使用“阵列访问”的索引在部分[Tensor] [{ dim1,dim2,... }] or [{ {dim1s,dim1e}, {dim2s,dim2e} }]