2017-08-09 96 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

相關問題