Ruby on rails ruby中两个矩阵之间的点积,最有效的方法

Ruby on rails ruby中两个矩阵之间的点积,最有效的方法,ruby-on-rails,ruby,matrix,gradient-descent,Ruby On Rails,Ruby,Matrix,Gradient Descent,我正在用ruby编写一个使用梯度下降和逻辑回归的机器学习算法 除了在ruby中矩阵之间的点积非常慢之外,这些算法工作得很好 我开始使用gemrubypython,它允许您将类似numpy的python库导入ruby并使用它的函数 numpy的性能令人印象深刻。应用程序开始运行时快了1000%,只是我总是在中途遇到分段错误 有人知道在ruby中加速两个矩阵的点积的其他方法吗?ruby实际上有一个内置的矩阵库。你可以打电话使用它 require 'matrix' 创建一个向量对象并取其内积。例如,

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

除了在ruby中矩阵之间的点积非常慢之外,这些算法工作得很好

我开始使用gemrubypython,它允许您将类似
numpy
的python库导入ruby并使用它的函数

numpy
的性能令人印象深刻。应用程序开始运行时快了1000%,只是我总是在中途遇到
分段错误


有人知道在ruby中加速两个矩阵的点积的其他方法吗?

ruby实际上有一个内置的
矩阵
库。你可以打电话使用它

require 'matrix'
创建一个向量对象并取其内积。例如,让我们创建两个向量

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

a.inner_product(b)
=> 3

你在ruby中是怎么做到的,没有numpy的东西吗?ruby中有很多ruby宝石,而不必在ruby中混搭Python。你试过了吗?如果可能的话,我会尽量避开鲁比派顿。例如,我尝试安装nmatrix,但总是失败,我相信是因为它缺少ATLAS,我无法在MAC-OSX中安装ATLAS。总是出错。我将尝试一下rb gsl。谢谢@maxwilliamsun直到我读到你对@Leon答案的评论,我以为你使用的是
矩阵
类,部分原因是你说,“…矩阵之间的点积…”。是的,我使用矩阵类的方式是
(a*b)
其中a和b是矩阵,但向量内积速度非常快。向量速度非常快。感谢
向量。发送(:新的、现有的数组)
-将其与变量一起使用而不是硬编码数组的唯一方法?