我是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文件中获取的,而不是命令行中的参数。此文件是有效模式。
很丢失,希望有人与这个问题有关。感谢。
答案 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
它有效。