Lua 抛出错误 luajit: error loading module 'libpaths' from file

Posted

技术标签:

【中文标题】Lua 抛出错误 luajit: error loading module \'libpaths\' from file【英文标题】:Lua throws error luajit: error loading module 'libpaths' from fileLua 抛出错误 luajit: error loading module 'libpaths' from file 【发布时间】:2017-02-06 08:32:21 【问题描述】:

我已经安装了 lua 5.2、Torch 版本 7、Ubuntu 版本 14.04 值得信赖

我正在尝试运行以下代码 ++++++++++++++++++++++++代码++++++++++++++++++++++++++++++++++++++++++++++

require 'neuralconvo' require 'xlua' 
-- Load Dataset 
print("--Loading Dataset") 
dataset=neuralconvo.Dataset(neuralconvo.CornellMovieDiaogs("data/cornell_movie_diaogs"),
   loadFirst = options.dataset,
    minWordFreq = options.minWordFreq 
)

--Build Model 
model = neuralconvo.Seq2Seq(dataset.wordsCount, options.hiddenSize) model.goToken = dataset.goToken 
model.eosToken=dataset.eosToken

--Training Parameters 
model.criterion=nn.SequencerCriterion(nn.ClassNLLCriterion()) 
model.learningRaw =  options.learningRate 
model.momentum = otions.momentum 
local decayFactor = (options.minLR - options.learningRate)/options.saturateEpoch local minMeanError = nil

--Enable Cuda 
if options.cuda then    
    require 'cutorch'   
    require 'cunn' 
elseif options.opencl then  
    require 'cltorch'   
    require 'clnn'
    model:cl()
end

-- Train Model using backpropogation    
for epoch = 1,options.maxEpoch do
    local errors = torch.Tensor(dataset.examplesCount):fill(0)      
    local timer=torch.timer()
    local i=1
    for examples in dataset:batches(options.batchSize) do                                                                                     
            collectgarbage()
            for _, example in ipairs(examples) do
                    local input, target = unpack(examples) do
                    if options.cuda then
                        input = input:cuda()
                        target = target:cuda()
                    elseif options.opencl then
                        input = input:cl()
                        target = target:cl()
                    end
                    local err=model:train(input, target)
                        if err ~= err then
                            error("Invalid error! Exiting.")
                        end
                    errors[i] = err
                    xlua.progress(i, dataset.examplesCount)
                    i=i+1
                    end             
             end        
             timer:stop()       
--Save the model if not Improved        
if minMeanError == nil or errors:mean() < minMeanError then
                print("\n(Saving model...)")  
                torch.save("data/model.t7",model)
                minMeanError=errors:mean()      
           end
-- Update Learning Rate         
    model.learningRate = model.learningRate + decayFactor       
    model.learningRate = math.max(options.minLR,model.learningRate)         
end     
end

   =============================================================     

我收到以下错误

luajit:从文件“/home/guru99u2/torch/install/lib/lua/5.2/libpaths.so”加载模块“libpaths”时出错: /home/guru99u2/torch/install/lib/lua/5.2/libpaths.so:未定义符号:luaL_setfuncs 堆栈回溯: [C]:在 0x00450240 [C]:在函数“要求”中 /home/guru99u2/torch/install/share/lua/5.2/paths/init.lua:1:在主块中 [C]:在函数“要求”中 /home/guru99u2/torch/install/share/lua/5.2/torch/init.lua:12:在主块中 [C]:在函数“要求”中 ./neuralconvo.lua:1: 在主块中 [C]:在函数“要求”中 bot.lua:1:在主块中 [C]:在 0x00404d60

【问题讨论】:

你确定'/home/guru99u2/torch/install/lib/lua/5.2/'中有lua dll吗?它缺少 lua 函数。所以我们可以责怪 dll。 【参考方案1】:

在安装过程中出现问题(或者您没有清理以前的版本),因为您尝试使用为 Lua 5.2 构建的模块以及支持 Lua 5.1 ABI(在本例中为 LuaJIT)的解释器。结果你得到了那个错误undefined symbol: luaL_setfuncs,因为动态库期望有这个函数,但是加载的解释器没有提供它。

Torch 支持 LuaJIT 和 Lua 5.2,但在切换 Lua 版本时,您需要运行 ./clean.sh 脚本,如 documentation 所示。

【讨论】:

我已经这样做了,但仍然是同样的错误。我需要重新安装 lua 和 torch 吗?如果是,那么正确的安装顺序是什么。我需要先安装什么 lua 5.2 或 torch 或 luajit 以及其余的订单并感谢您的帮助 您是否指定了TORCH_LUA_VERSION?如果你为 Lua 5.2 配置了它,那么使用 Lua 5.2 来运行你的脚本而不是 LuaJIT。 是的,我完全按照文档“TORCH_LUA_VERSION=LUA52 ./install.sh”做到了这一点——我输入的命令 但是您应该使用 lua52 来运行您的脚本,而不是根据您的错误消息使用的 luajit:luajit: error loading module 'libpaths'...

以上是关于Lua 抛出错误 luajit: error loading module 'libpaths' from file的主要内容,如果未能解决你的问题,请参考以下文章

lua 和 luajit的区别

LuaJIT 是如何工作的 - 解释模式

LuaJIT版从零开始在 macOS 上配置 Lua 开发环境

luajit与NYI

RNN 代码的 luajit/lua5.1/lua5.2/lua5.3 内存问题

luajit啥时候有的