R中具有大稀疏张量的算术/逻辑运算

时间:2019-06-26 16:47:38

标签: r sparse-matrix tensor

我需要使用R中的大型3D数组(张量)(例如1500 x 150 x 30000)进行快速计算(+,*,>)。由于这些数组非常稀疏(只有0.03%的项为非零),因此我首先使用“ tensorr”库中的as_sptensor函数将我的张量转换为稀疏的张量,例如:

x <-array(data = c(1,0,0,0,0,0,0,1,1,1,1,1),dim = c(3,2,2))

s <-as_dtensor(x)

s1 <-as_sptensor(s)

然后我做一些算术运算,例如乘法:

s1 * s1

我也总共有8GB的内存限制,因此也有助于我存储结果。

问题是当我处理像这样的大张量时:

一个<-some_index_matrix [1:3,1:1000000]

A2 <-sptensor(A,rep(1,ncol(A)),dims = c(max(A [1,]),max(A [2,]),max(A [3,]) ))

A2 * A2

我未能在合理的时间内获得该产品结果。如何优化我的代码,以便在几秒钟内执行此类计算?

0 个答案:

没有答案
相关问题