在TensorFlow中查找(许多)稀疏(但块对角线)矩阵的逆

时间:2019-06-21 15:53:57

标签: python tensorflow matrix-inverse

我的问题是:我有大量的(百万)大型矩阵要求逆,我想用TensorFlow来做。通常,这可能是一个相当困难的问题,但是我的矩阵稀疏,特别是它们具有(不规则)块对角线结构。因此,从数学上讲,可以通过执行一堆小得多的矩阵的逆来找到完整矩阵的逆,而这样做的速度要快得多。

但是,我想编写一些通用代码来进行此反演,其中块对角矩阵的结构和大小在问题之间会有所不同。因此,最好有一种算法能够找出块对角线结构本身并加以利用,并且可以将稀疏矩阵用作输入和输出(因为永远不需要存储成千上万的块外块) -对角线元素,从用户的角度来看,将块对角线的“包”保持在一起更加方便。

我看到TensorFlow有SparseTensor对象,但是我找不到太多可以使用它们的算法。我是否很幸运,并且已经存在用于块SparseTensors的不错的矩阵求逆算法?我想写一个应该不那么难,但是我宁愿不要重新发明轮子。

编辑:啊,我要提一下,对于所有要求逆的矩阵,块对角线结构都是完全相同的。因此,计划是将所有矩阵堆叠在一个巨大的3D张量中(无论如何,尽可能多地可容纳在RAM中)。

0 个答案:

没有答案