2016-05-15 5 views
1

Ich versuche, die Klassenfunktion in Torch zu verwenden. Wenn Sie jedoch eine Elementfunktion mit einem Argument aufrufen, ist das Argument immer null. Ich weiß, dass Klasse eine Abstraktion ist, um OO-Programmierung zu emulieren.Weitergabe von Daten an fackel.class (es) in lua

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("This will not work") 
    print(input) 
    end 


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

Ausgänge:

Torch 7.0 Copyright (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] 

This will not work 
nil 

Kann jemand empfehlen, wo ich falsch gegangen? Gibt es Einschränkungen für das System Torch.class?

Vielen Dank im Voraus

Antwort

0

Verwenden rpnnode.Foo(rpnnode, input) oder (besser) rpnnode:Foo(input) - der Darm Zucker syntaktischer ist, siehe Programming in Lua, 16.1.

+0

doh! rutschte in meine cpp-Wege. Danke für die Abholung. – rocklegend

Verwandte Themen