【问题标题】:Lua Torch7 array index notationLua Torch7 数组索引表示法
【发布时间】:2016-09-23 23:43:03
【问题描述】:

我有一个名为 xTain 的数组,大小为 nDatax1

我把它初始化为

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]

为什么它还会在第三种情况下打印[torch.DoubleTensor of size 1]。我的猜测是在前两种情况下它在该位置返回一个标量值,在第三种情况下返回一个DoubleTensor

【问题讨论】:

    标签: lua deep-learning torch


    【解决方案1】:

    好的起点是Lua manual,它的语法和表达式。你可以看到,{...} 在 Lua 中是什么意思:

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

    所以简而言之,您的 {1} 创建了一个具有单个值 1 的列表。再次重复它,您将得到一个包含单个数字 1 的列表。

    如果xTrain 是简单表,它可能会失败,因为使用列表很难索引,但 Lua 支持元表,因此实际值不用于索引表,而是传递给某个函数照顾清单。

    还可以进一步阅读从torch.linespace() 函数返回的Tensor 类,这是一个很好的地方。使用“数组访问”的索引在[Tensor] [{ dim1,dim2,... }] or [{ {dim1s,dim1e}, {dim2s,dim2e} }]部分中进行了解释

    【讨论】:

      猜你喜欢
      • 2016-12-21
      • 2016-06-21
      • 2016-02-16
      • 2012-05-21
      • 2020-12-27
      • 2018-05-20
      • 1970-01-01
      • 1970-01-01
      • 2012-12-20
      相关资源
      最近更新 更多