标签: sparse-matrix

稀疏与普通数组Matlab

在Matlab中,如果我还有很多计算要做,那么稀疏数组比普通数组更好,大约25%的数组是非零?

performance matlab sparse-matrix

11
推荐指数
1
解决办法
4866
查看次数

Haskell中的任何稀疏线性代数包?

是否有任何包可以执行稀疏线性代数计算,可能基于快速高效的C库?我搜索了Hackage,但我没有发现任何关注:hmatrix,它使用GSL,BLAS和LAPACK,很棒,但似乎没有包含特殊算法来解决稀疏矩阵的线性系统和特征值/向量问题.我想要找到的,它类似于scipy中的sparse.linalg模块.谢谢!

haskell linear-algebra sparse-matrix

11
推荐指数
1
解决办法
1761
查看次数

切片稀疏(scipy)矩阵

感谢任何帮助,以便在从scipy.sparse包中切割lil_matrix(A)时理解以下行为.

实际上,我想基于行和列的任意索引列表提取子矩阵.

当我使用这两行代码时:

x1 = A[list 1,:]
x2 = x1[:,list 2]
Run Code Online (Sandbox Code Playgroud)

一切都很好,我可以提取正确的子矩阵.

当我尝试在一行中执行此操作时,它失败了(返回的矩阵为空)

x=A[list 1,list 2]
Run Code Online (Sandbox Code Playgroud)

为什么会这样?总的来说,我在matlab中使用了类似的命令,并在那里工作.那么,为什么不使用第一个,因为它有效?这似乎非常耗时.由于我必须经历大量的条目,我想使用单个命令加速它.也许我使用错误的稀疏矩阵类型......任何想法?

python scipy sparse-matrix slice submatrix

11
推荐指数
2
解决办法
9060
查看次数

计算吸收马尔可夫链基本矩阵的最佳方法是什么?

我有一个非常大的吸收马尔可夫链(扩展到问题大小 - 从10个状态到数百万个)非常稀疏(大多数状态只能对4或5个其他状态作出反应).

我需要计算该链的基本矩阵的一行(给定一个起始状态的每个状态的平均频率).

通常,我会通过计算来做到这一点(I - Q)^(-1),但我找不到一个实现稀疏矩阵逆算法的好库!我已经看过几篇论文,其中大部分都是博士级的工作.

我的大部分Google结果都指向了一些帖子,讨论在解决线性(或非线性)方程组时如何不应该使用矩阵逆...我觉得这没有特别有用.基本矩阵的计算是否类似于求解方程组,我根本不知道如何以另一个的形式表达一个?

所以,我提出两个具体问题:

计算稀疏矩阵的逆的行(或所有行)的最佳方法是什么?

要么

计算大吸收马尔可夫链基本矩阵的最佳方法是什么?

一个Python解决方案会很精彩(因为我的项目目前仍然是一个概念验证),但是如果我不得不用一些好的'Fortran或C弄脏,那不是问题.

编辑:我刚刚意识到矩阵A的逆B可以定义为AB = I,其中I是单位矩阵.这可能会允许我使用一些标准的稀疏矩阵解算器来计算逆...我得赶紧走了,可以随意完成我的思路,我刚开始想可能只需要一个非常基本的矩阵属性...

python algorithm math markov-chains sparse-matrix

11
推荐指数
1
解决办法
4106
查看次数

特征将密集矩阵转换为稀疏矩阵

如何转换Eigen::Matrix<double,Dynamic,Dynamic>Eigen::SparseMatrix<double>?我正在寻找一种更好的方法,而不是遍历密集矩阵

c++ matrix sparse-matrix eigen

11
推荐指数
1
解决办法
7811
查看次数

巨大稀疏数据集上的主成分分析(PCA)

我有大约1000个维度50000的向量x_i,但它们非常稀疏; 每个只有大约50-100个非零元素.我想在这个数据集上(在MATLAB中)做PCA,以减少数据的不必要的极端维度.

不幸的是,由于需要从所有示例中减去均值,我不知道在没有中间完整矩阵的情况下如何做到这一点.当然,1000x50000矩阵太大而无法放入内存(当我尝试时,它实际上因某些原因而崩溃了我的整台计算机).princomp当我尝试使用它时,Matlab的内置程序会崩溃我的计算机.

所以我的问题是:有没有办法对这些数据进行PCA而不需要大量的非稀疏矩阵作为中间步骤?

matlab machine-learning sparse-matrix pca

11
推荐指数
1
解决办法
5240
查看次数

python中稀疏矩阵的相关系数?

有谁知道如何从python中的一个非常大的稀疏矩阵计算相关矩阵?基本上,我正在寻找类似于numpy.corrcoefscipy稀疏矩阵的东西.

python numpy scipy sparse-matrix correlation

11
推荐指数
2
解决办法
5966
查看次数

从scipy稀疏矩阵中过滤值

我试图从一个巨大的(1Mx1M)CSR矩阵(SciPy)中过滤小于10的值.由于我的所有值都是整数,除以10并且重新乘以10就可以完成这项工作,但我想知道是否有更好的方法来过滤元素.

编辑: 下面的答案有效.检查您是否拥有最新版本的SciPy.

python scipy sparse-matrix

11
推荐指数
1
解决办法
4883
查看次数

张量流对稀疏变量做渐变

我试图在张量流中训练一个稀疏变量,据我所知,当前张量流不允许稀疏变量.

我找到了两个讨论类似问题的线程:using-sparsetensor-as-a-trainable-variableupdate-only-the-the-word-embedding-matrix-in-tensorflow.我不太明白答案,如果有任何示例代码会很好

我试过的一种方法是:

# initialize the sparse variable sp_weights
# assuming w_s is the input sparse matrix contains indices information
dim=20
identity = tf.constant(np.identity(dim), dtype=tf.float32)
A=tf.sparse_tensor_dense_matmul(w_s, identity)  # convert w_s to dense
w_init = tf.random_normal([dim, dim], mean=0.0, stddev=0.1) 
w_tensor = tf.mul(A, w_init) # random initialize sparse tensor
vars['sp_weights'] = tf.Variable(w_tensor)

# doing some operations...
Run Code Online (Sandbox Code Playgroud)

当计算梯度时,根据第二个链接使用tf.IndexedSlices

grad = opt.compute_gradients(loss)
train_op = opt.apply_gradients(
    [tf.IndexedSlices(grad, indices)]) # indices is extracted from w_s
Run Code Online (Sandbox Code Playgroud)

上面的代码当然不起作用,我在这里很困惑.tf.IndexedSlices使输入成为IndexedSlices实例,如何使用它来更新给定索引的渐变?此外,许多人提到使用tf.scatter_add/sub/update.官方文档不包含有关如何使用以及在何处使用渐变更新的示例代码.我应该使用tf.IndexedSlices还是tf.scatter?如果有任何示例代码,将会非常有用.谢谢!

sparse-matrix tensorflow

11
推荐指数
1
解决办法
1098
查看次数

从元组列表列表构造稀疏矩阵

我有一个稀疏矩阵的行信息的Python列表.每行表示为(列,值)元组的列表.叫它alist:

alist = [[(1,10), (3,-3)],
         [(2,12)]]
Run Code Online (Sandbox Code Playgroud)

如何从列表列表中有效地构造一个scipy稀疏矩阵,得到如下矩阵:

0  10   0  -3
0   0  12   0
Run Code Online (Sandbox Code Playgroud)

显而易见的方法是制作一个scipy.sparse.lil_matrix内部具有此"列表列表"结构的内容.但是从scipy.sparse.lil_matrix - SciPy v0.19.0参考指南中我只看到了构建它们的三种方法:

  • 从密集阵列开始
  • 从另一个稀疏数组开始
  • 只是构建一个空数组

因此,获取新数据的唯一方法是使用其他稀疏矩阵表示来解决此问题,或者从密集数组开始,这两者都没有解决初始问题,并且这两者似乎都是效率低于表示的lil_matrix本身就是这个数据.

我想我可以制作一个空的,并使用循环来添加值,但我肯定错过了一些东西.

在稀疏矩阵方面,scipy文档非常令人沮丧.

python constructor scipy sparse-matrix

11
推荐指数
2
解决办法
1839
查看次数