2017-08-09 60 views
0

我正在使用mac并运行带有Pycharm IDE的lua。 当Pycharm运行LUA脚本以下PARAMS:enter image description here尝试调用全局'lapp'(一个零值)

我的代码开始:

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")  subdirectory to save logs 
    -b,--batchSize    (default 50)   batch size 
    -r,--learningRate   (default 0.01)  learning rate 
    --learningRateDecay  (default 1e-7)  learning rate decay 
    --weightDecay    (default 0.0005)  weightDecay 
    -m,--momentum    (default 0.9)   momentum 
    --epoch_step    (default 33)   epoch step 
    --model     (default nin)  model name 
    --max_epoch    (default 100)   maximum number of iterations 
    --data_loc     (default "workspace/dataset/torch")   image location 
    --trainData    (default "workspace/dataset/torch/train.txt") train.txt location 
    --testData     (default "workspace/dataset/torch/val.txt") val.txt location 
    --image_size    (default 256)   image size 
    --crop_size    (default 224)   image size after crop 
    --use_pretrained   (default false) whether to use pre-trained model 
    --num_labels    (default 1000) number of labels 
    --do_aug     (default false) do augmentation or not 
    --max_label    (default -1)  label with maximum occurences to subsample 
    --max_2max_ratio   (default -1)  ratio of maximum label to subsample and 2nd maximum label 
    --pretrained_model_loc  (default none) location of the pre-trained model 
]] 

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

而且我得到了错误:

/imcnn/train256.lua:31: attempt to call global 'lapp' (a nil value) 

为什么发生这种情况?

回答

1

错误信息非常清晰。

这是因为lappnil值并尝试调用它31行

lapp必须是一个全球性的功能,如果你想调用它在全球范围内。

你很可能忘记了这里需要的东西。

一个快速的网络搜索表明lapp是penlight库的一部分。

我找到了一条线lapp = require 'pl.lapp' 的例子在lapp呼叫前加上这一行可能会解决您的问题。

+0

你说得对!我忘了这一行。 谢谢! – Elik

相关问题