lua - 无效的参数类型

时间:2015-12-28 21:17:50

标签: lua arguments torch

我是Lua的新手。目前收到以下错误消息:

invalid argument type for argument -model (should be the model checkpoint 
to use for sampling)
Usage: [options] <model>

我确信这很容易解决,但无法找到解决方案。

&#39;模型&#39;是一个文件lm_checkpoint_epoch50.00_2.7196.t7,它位于目录

/home/ubuntu/xxx/nn/cv

我从父目录运行程序(/ home / ubuntu / xxx / nn)

我已经尝试了以下选项来运行程序(从保存模型的目录上方的一个目录):

th sample.lua - model lm_chelm_checkpoint_epoch50.00_2.5344.t7
th sample.lua lm_chelm_checkpoint_epoch50.00_2.5344.t7
th sample.lua /cv/lm_chelm_checkpoint_epoch50.00_2.5344.t7
th sample.lua - /cv/model lm_chelm_checkpoint_epoch50.00_2.5344.t7

此外,程序还有一个torch.CmdLine()对象,其中:argument等于&#39; /cv/lm_checkpoint_epoch50.00_2.7196.t7'。程序打印参数,以便您在屏幕上看到以下输出:

Options
<model>      /cv/lm_checkpoint_epoch50.00_2.7196.t7

所以它找到了参数&#39; model&#39;的值,它是从.lua文件中获取的,而不是命令行中的参数。此文件是有效模式。

很丢失,希望有人与这个问题有关。感谢。

1 个答案:

答案 0 :(得分:2)

发现了这个问题 - 这是一个像smhx建议的错误。我无意中改变了源代码:

require 'torch'
cmd = torch.CmdLine()
cmd:argument('-model','model checkpoint to use for sampling')

请注意,源代码中没有参数。到:

cmd:argument('-model','/cv/model lm_chelm_checkpoint_epoch50.00_2.5344.t7'
'model checkpoint to use for sampling')

因此参数必须通过命令行传递,而不是源代码。使用参数,它是不同的 - 您可以将它们包含在源代码中。

因此,如果我更改源代码并从命令行运行以下命令:

th sample.lua cv/lm_chelm_checkpoint_epoch50.00_2.5344.t7

它有效。