以红宝石,最有效的方式在2个矩阵之间的点积

Leo*_*eon 4 ruby ruby-on-rails matrix gradient-descent

我正在使用梯度下降和逻辑回归在ruby中编写机器学习算法.

算法工作正常,但在ruby中,矩阵之间的点积非常慢.

我开始使用gem RubyPython,它允许你将python库numpy导入ruby并使用它的函数.

表现numpy令人印象深刻.应用程序开始运行速度提高了1000%,除了我总是segmentation fault中途停止.

有没有人知道加速红宝石中2个矩阵的点积的任何其他方法?

Ric*_*ton 5

Ruby实际上有一个内置matrix库.你可以通过电话来使用它

require 'matrix'
Run Code Online (Sandbox Code Playgroud)

您创建一个矢量对象并获取它的内在产品.例如,让我们创建两个向量

a = Vector[1,3,-5]
b = Vector[4,-2,-1]

a.inner_product(b)
=> 3
Run Code Online (Sandbox Code Playgroud)