虽然我们知道 Lua 在我们想将其用作嵌入式语言时做得很好,但它也可以超越其基本用途,可以用于机器学习和统计分析等极端情况。
市场上有许多科学图书馆,用于这种利用 Lua 制作更多内容的特殊情况。让我们探索一下这些库是什么以及它们做了什么。
在同一句话中谈论 Lua 和机器学习时,我想到的第一个名字是Torch项目。火炬项目是一个科学计算框架,广泛支持将 GPU 放在首位的机器学习算法。得益于简单快速的脚本语言 LuaJIT 和底层 C/CUDA 实现,它易于使用且高效。
Torch 项目需要注意的关键点是它使用 LuaJIT,它是 Lua 的即时编译器,这使得使用它提供的向量/矩阵/张量数值库变得更加容易。
另一个可以使用的项目是Numeric Lua项目。数值 Lua 项目是 Lua 编程语言的数值包。它包括对复数、多维矩阵、随机数生成、快速傅立叶变换和特殊函数的支持。该项目包含不同的例程,这些例程只是不同著名机器学习库的 Lua 包装器。
最后一个绝对属于这个科学图书馆类别的是Lunatic-python项目。在这个项目中,我们有 Lua 和 python 之间的双向通信,因此可以利用我们的 Lua 代码中的 python 代码中存在的库,反之亦然。
一个简单的用例看起来像这样 -
require("python") numpy = python.import("numpy") numpy.array ... etc ..