2016-04-08 9 views
0

Angenommen, ich habe das Folgende in test.lua Datei:Wie rufen Sie eine Torch .Lua-Datei mit neuen/anderen Argumenten auf?

require 'torch' 
-- parse command line arguments 
if not opt then 
    print '==> processing options' 
    cmd = torch.CmdLine() 
    cmd:text() 
    cmd:text('SVHN Model Definition') 
    cmd:text() 
    cmd:text('Options:') 
    cmd:option('-model', 'convnet', 'type of model to construct: linear | mlp | convnet') 
    cmd:option('-visualize', 1, 'visualize input data and weights during training') 
    cmd:text() 
    opt = cmd:parse(arg or {}) 
end 

if opt.visualuze == 0 then 

-- Do something 

Jetzt nehme ich will test.lua einige verschiedene Argumente durch eine andere lua Datei execute.lua gegeben nennen:

dofile ('test.lua -visualize 0') --Gives an error 

Aber ich bin immer ein Fehler, der anzeigt, dass die Datei 'test.lua -visualize 0' nicht gefunden wird, wenn versucht wird, die Funktion über execute.lua aufzurufen.

Also, wie kann ich eine andere lua-Datei, die Fackel-Code enthält, durch eine andere .lua-Datei korrekt ausführen?

+0

welche Fehler? 'dofile' akzeptiert keine Kommandozeilenargumente. Wenn Sie eine "Datei" aufrufen wollen, gibt es dafür Funktionen und 'Loadfile'. – Jakuje

+0

Der Fehler zeigt an, dass die Datei 'test.lua -visualize 0' nicht gefunden wurde. – Amir

+0

Und warum ist es nicht in der Frage? Immerhin gilt der andere Teil meines Kommentars. Sie sollten Funktionen verwenden. – Jakuje

Antwort

0

Wenn Sie die Variablen nicht in Ihrem ‚test.lua‘ definiert verwenden müssen, können Sie os.execute verwenden:

os.execute("th test.lua -visiualize 0")