将数据传递给torch.classes在lua中

我试图使用Torch中的class函数。但是,当调用带有参数的成员函数时,参数始终为nil。我知道class是模拟面向对象编程的抽象。

local RpnData, parent = torch.class('nn.RpnData', 'nn.Module')

  function RpnData:__init()
    parent.__init(self)
    local  scale = {8, 16, 32}
    self._feat_stride = 1

    self._allowed_border = 0;
  end

  function RpnData:Foo(input)
    print("这将不起作用")
    print(input)
  end

local rpnnode = nn.RpnData()
local input = torch.Tensor( 5, 5):zero()
print(input)
rpnnode.Foo(input)

输出:

Torch 7.0  版权所有 (C) 2001-2011 Idiap、NEC Labs、NYU
 0  0  0  0  0
 0  0  0  0  0
 0  0  0  0  0
 0  0  0  0  0
 0  0  0  0  0
[torch.DoubleTensor of size 5x5]

这将不起作用
nil

有人可以建议我错在哪里吗?Torch.class系统有限制吗?

提前感谢

点赞
用户1688185
用户1688185

使用 rpnnode.Foo(rpnnode, input) 或者更好的方式 rpnnode:Foo(input) - 冒号语法是一种语法糖,请参考《Lua 程序设计》16.1节

2016-05-15 13:06:29