ruby 中 2 个矩阵之间的点积,最有效的方法

Dot Product between 2 matrices in ruby, most efficient way

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

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

我开始使用 gem RubyPython,它允许您将 python 库(如 numpy 导入 ruby 并使用它的函数。

numpy的表现令人印象深刻。应用程序开始 运行 快了 1000%,除了我总是 segmentation fault 中途。

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

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

来使用它
require 'matrix'

你创建了一个向量对象并取它的内积。例如,让我们创建两个向量

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

a.inner_product(b)
=> 3