从lua表读

时间:2018-02-27 18:58:26

标签: lua lua-table

我是Lua的新手,我正在努力学习它。 最近我遇到了下面的代码行,我相信它从表中提取了一些值。

local context = context_proto[{{1, batch_size}, {1, source_l*imgH}}]

我之前没有看过这种特殊的阅读方法。如果有人能帮助我理解上面代码的作用,我将非常感激。

2 个答案:

答案 0 :(得分:1)

来自Lua Documentation

  

类型实现关联数组,即不仅可以使用数字编制索引,而且使用任何Lua值(除了nil和NaN之外)的数组。

该代码使用表作为另一个表的索引。如果它写成如下可能更清楚:

           using com.softlayer.api;
    SoftLayer_AccountService accountService = new SoftLayer_AccountService();         
     String username = "UserName";
        String apiKey = "UserKey";

        authenticate authenticate = new authenticate();
        authenticate.username = username;
        authenticate.apiKey = apiKey;            
        accountService.authenticateValue = authenticate;

        SoftLayer_Billing_Invoice_ItemObjectFilter objFilt = new SoftLayer_Billing_Invoice_ItemObjectFilter();

    /// 
    ///

        SoftLayer_Billing_Invoice[] inv = accountService.getInvoices();

答案 1 :(得分:1)

在没有进一步代码的情况下,您在本地看到的代码在本机Lua中没有太大意义。它常用于火炬。我在网上找到了与火炬相关的脚本中的代码片段。所以我猜这是一个有效的猜测。

我对Torch不是很有经验,但是根据我在文档中看到的内容,这将为您提供context_proto的子张量。第1行 - batchSize和col source_l * imgH。

我认为它被称为切片,它将在以下演示/教程中介绍: https://github.com/torch/demos/blob/master/tensors/slicing.lua

print 'more complex slicing can be done using the [{}] operator'
print 'this operator lets you specify one list/number per dimension'
print 'for example, t2 is a 2-dimensional tensor, therefore'
print 'we should pass 2 lists/numbers to the [{}] operator:'
print ''

t2_slice1 = t2[{ {},2 }]
t2_slice2 = t2[{ 2,{} }]      -- equivalent to t2[2]
t2_slice3 = t2[{ {2},{} }]
t2_slice4 = t2[{ {1,3},{3,4} }]
t2_slice5 = t2[{ {3},{4} }]
t2_slice6 = t2[{ 3,4 }]
...

有关详细信息,请参阅割炬文档。

https://github.com/torch/torch7/blob/master/doc/tensor.md#tensor--dim1dim2--or--dim1sdim1e-dim2sdim2e-