ZeroBraneStudio 中的 Lua 版本与 Torch

我正在使用ZeroBrane Studio作为IDE来编写深度学习。我已经意识到,当在IDE中编程时保存的模型(使用Lua 5.1作为解释器)在从Torch7执行相同的加载时无法很好地加载。当从torch(./th code.lua)学习,然后尝试在IDE中加载它们时,情况也是如此。我得到了这样的东西:

/opt/zbstudio/bin/linux/x64/lua: /home/dg/torch/install/share/lua/5.1/torch/File.lua:294: unknown object

有人知道如何检查torch正在使用的lua版本吗?有什么解决方法吗?

谢谢!

更新: 看起来我确实在Torch和ZeroBrane中使用相同的Lua版本(5.1)。当通过torch.load()时,我仍然会得到不同的行为(一个成功,另一个崩溃)。

点赞
用户3979429
用户3979429

通常,要检查任何东西运行的Lua版本,您可以打印 _VERSION。它是一个全局变量,用于存储Lua的版本(除非您覆盖它,当然)。

print(_VERSION)

如果出于某些原因无法使用此方法,则他们可能会在他们的网站上声明其版本(?)

2015-10-30 11:23:03
用户3677376
用户3677376

许多 Linux 上的命令行工具都可以使用 -v 命令行开关(表示“版本”)。Lua 和 LuaJIT 也一样。

要确定运行特定脚本的解释器,可以扫描 arg 表格并查找最小的索引(通常为负数):

local exe, i = arg[0], -1
while arg[i] do
  exe, i = arg[i], i-1
end
print(exe)

或者(在 Linux 上)当脚本运行时可以查看 /proc 文件系统:

ls -l /proc/4425/exe

(将 4425 替换为实际进程 ID)。

从你的错误信息中可以看出,ZeroBrane Studio 使用的解释器似乎是 /opt/zbstudio/bin/linux/x64/lua

2015-10-30 13:52:55
用户5489845
用户5489845
@siffiejoe:感谢您提出版本相关问题,它指引了我正确的探索方向。

/opt/zbstudio/bin/linux/x64/lua 版本是 LuaJIT 2.0.2
单独使用 "lua" 命令指向 /usr/bin/lua,它是 Lua 5.1.5
~/torch/install/share/lua/5.1 似乎包含了 Lua 5.1
~/torch/install/bin/luajit 是 2.1.0-alpha

因此,在意识到终端 "th" 使用的是 LuaJit 2.1.0 后,我所要做的就是在 ZeroBrane 中创建一个 user.lua 文件并添加一行代码:"path.lua = "~/torch/install/bin/luajit"。现在 ZB 使用的 luajit 解释器与 th 相同了。

感谢大家提供的建议。
2015-11-03 09:51:38