gpt4 book ai didi

r - 具有 0 值的 R 矩阵单元格需要多少空间?以及如何处理大矩阵计算

转载 作者:行者123 更新时间:2023-12-04 11:49:50 25 4
gpt4 key购买 nike

我想计算矩阵的相关性,但由于内存无法容纳而被程序停止。

M = matrix(0, length(user), length(mat))   

当我运行这条线时,我收到一条消息

Error: cannot allocate vector of size 146487.5 Gb

仅供引用

length(user) = 6728367
length(mat) = 2922138

那么一个0值矩阵单元需要占用多少空间呢?

更进一步,如何处理基于稀疏矩阵的矩阵计算?有包裹吗?或者我可以进行多核计算?

最佳答案

您的错误消息中提到需要多少空间:146,487.5 GB。

如果你想要这么大的矩阵,就用一个稀疏矩阵:

library(Matrix)
user = 6728367
mat = 2922138
M = Matrix(0, user, mat)

这会起作用:

> str(M)
Formal class 'dgCMatrix' [package "Matrix"] with 6 slots
..@ i : int(0)
..@ p : int [1:2922139] 0 0 0 0 0 0 0 0 0 0 ...
..@ Dim : int [1:2] 6728367 2922138
..@ Dimnames:List of 2
.. ..$ : NULL
.. ..$ : NULL
..@ x : num(0)
..@ factors : list()

有教程here你可以在网上找到更多。数学计算通过包进行了优化,因此像 M * M 这样的东西也可以快速运行。另外,您可以检查 here

关于r - 具有 0 值的 R 矩阵单元格需要多少空间?以及如何处理大矩阵计算,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56733146/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com