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

时间:2015-05-19 15:11:26

标签: ruby-on-rails ruby matrix gradient-descent

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

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

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

numpy的表现令人印象深刻。该应用程序开始运行速度提高了1000%,但我总是在中途获得segmentation fault

有没有人知道如何加速ruby中2个矩阵的点积?

1 个答案:

答案 0 :(得分:5)

Ruby实际上有一个内置的matrix库。你可以通过调用

来使用它
require 'matrix'

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

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

a.inner_product(b)
=> 3