尝试调用全局变量'lapp'(一个空值)

我正在使用Pycharm IDE在Mac上运行lua。 在使用以下参数在Pycharm上运行lua脚本时:enter image description here

我的代码从以下代码开始:

require('mobdebug').start()
require 'xlua'
require 'optim'
require 'cunn'
require 'loadcaffe'
dofile './provider256.lua'
local c = require 'trepl.colorize'
local lfs = require 'lfs'

opt = lapp[[
   -s,--save                  (default "logs/nin")      子目录以保存日志
   -b,--batchSize             (default 50)          批量大小
   -r,--learningRate          (default 0.01)        学习率
   --learningRateDecay        (default 1e-7)      学习率衰减
   --weightDecay              (default 0.0005)      权重衰减
   -m,--momentum              (default 0.9)         动量
   --epoch_step               (default 33)          每个时期步骤
   --model                    (default nin)     模型名称
   --max_epoch                (default 100)           迭代次数的最大数量
   --data_loc                 (default "workspace/dataset/torch")            图像位置
   --trainData                (default "workspace/dataset/torch/train.txt")  train.txt位置
   --testData                 (default "workspace/dataset/torch/val.txt")    val.txt位置
   --image_size               (default 256)         图像大小
   --crop_size                (default 224)         裁剪后的图像大小
   --use_pretrained           (default false)   是否使用预训练的模型
   --num_labels               (default 1000)    标签数
   --do_aug                   (default false)   是否进行扩充
   --max_label                (default -1)      最大出现次数的标签进行子采样
   --max_2max_ratio           (default -1)      最大标签与子采样和第二最大标签的比率
   --pretrained_model_loc     (default none)    预训练模型的位置
]]

print(opt)
print(lfs.currentdir())

然后我得到了以下错误:

/imcnn/train256.lua:31: 尝试调用全局变量'lapp'(一个空值)

为什么会这样?

点赞
用户2858170
用户2858170

错误信息十分清晰。

这是因为lappnil值,你试图在第31行调用它。

如果你想在全局范围内调用lapp,它必须是一个全局函数。

你很可能在这里忘记了加载某个库。

一个快速的网络搜索表明lapppenlight库的一部分。

我找到了一个使用了lapp = require 'pl.lapp'的示例。

在调用lapp之前添加这一行代码可能会解决你的问题。

2017-08-09 17:22:13