python - 在 numpy 中对巨大的密集矩阵进行操作

标签 python numpy linear-algebra

为了训练神经网络,在某些时候我有一个巨大的 212,243 × 2500 密集矩阵 phi,以及向量 y (212243) 和 w (2500),存储为 numpy double 组。我要计算的是

w = dot(pinv(phi), y)
# serialize w...
r = dot(w, transpose(phi))
# serialize r...

我的机器在 Ubuntu x64 上有 6 GB 的 RAM 和 16 GB 的交换空间。我开始计算两次,两次在大约一个小时的工作后以系统(不是 python)交换错误结束。

有没有办法在我的计算机上执行此计算?不需要用 python 来完成。

最佳答案

如果除了计算 w 之外不需要伪逆,请将该行替换为:

w = np.linalg.lstsq(phi, y)[0]

在我的系统上,它的运行速度提高了大约 2 倍,并且使用了大约一半的中间存储空间。

关于python - 在 numpy 中对巨大的密集矩阵进行操作,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16470123/

相关文章:

c++ - 使用矩阵模板库的矩阵乘法(MTL 2)

python - 自然排序 Pandas DataFrame

python - “twistd”不是可识别的内部或外部命令

python - 通过类属性调用的函数对象失败

python - 将 numpy 数组与标量传递给函数会产生不一致的结果

numpy - Numpy 是否具有内置的元素矩阵模幂实现

python - 来自opencv矩形的奇怪错误

python - 基于命令行参数动态调用类方法

python - 如何在 python 中求解多元线性方程?

python - 闭式岭回归