我是Lua的新手,我正在努力学习它。 最近我遇到了下面的代码行,我相信它从表中提取了一些值。
local context = context_proto[{{1, batch_size}, {1, source_l*imgH}}]
我之前没有看过这种特殊的阅读方法。如果有人能帮助我理解上面代码的作用,我将非常感激。
答案 0 :(得分:1)
类型表实现关联数组,即不仅可以使用数字编制索引,而且使用任何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 }]
...
有关详细信息,请参阅割炬文档。