需要Torch命令行脚本而不解析命令行参数

时间:2016-02-24 20:04:36

标签: lua torch

我有两个Torch脚本。一个是用于训练模型的代码,另一个用于测试它。

训练脚本接受命令行参数

cmd = torch.CmdLine()
cmd:option('--foo', 'bar', 'example option')
opt = cmd:parse(arg or {})

测试脚本也接受命令行参数。它需要训练脚本,因为它需要训练脚本定义的一些函数和常量

require 'training'
cmd = torch.CmdLine()
cmd:option('--bar', 'foo', 'other option')
opt = cmd:parse(arg or {})

当我运行我的测试脚本时,它会从训练中运行cmd:parse调用,但失败是因为bar不是传入的有效选项。是否存在如何使用cmd:解析调用不会发生,除非它是从命令行运行的吗?

1 个答案:

答案 0 :(得分:0)

正如评论中所述,debug.getinfo(3)在从include中调用时会给出不同的行为。

从命令行调用时,debug.getinfo(3).namenil。从require对该文件发出呼叫时,debug.getinfo(3).namepcall。所以我将所有命令行函数包装到if块中,首先检查debug.getinfo(3)。 (它类似于Python中的__name__ = '__main__'。)

这是Torch解释器,我不知道这是否适用于其他Lua解释器。

相关问题