深度学习中使用稀疏矩阵

Posted super尚

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了深度学习中使用稀疏矩阵相关的知识,希望对你有一定的参考价值。

目的

单机环境下,如果特征较为稀疏且矩阵较大,那么就会出现内存问题,如果不上分布式 + 不用Mars/Dask/CuPy等工具,那么稀疏矩阵就是一条比较容易实现的路。

SciPy 中有 7 种存储稀疏矩阵的数据结构:

bsr_matrix: Block Sparse Row matrix 块状稀疏行矩阵
coo_matrix: COOrdinate format matrix 矩阵格式的COOrdinate
csc_matrix: Compressed Sparse Column matrix 压缩的稀疏列矩阵
csr_matrix: Compressed Sparse Row matrix 压缩的稀疏行矩阵
dia_matrix: Sparse matrix with DIAgonal storage 具有DIAgonal存储的稀疏矩阵
dok_matrix: Dictionary Of Keys based sparse matrix 基于稀疏矩阵的密钥字典
lil_matrix: Row-based LInked List sparse matrix 基于行的LInked List稀疏矩阵

各个类型的用途:
如果想创建一个新的稀疏矩阵,lil_matrix,dok_matrix和coo_matrix会比高效,但是它们不适合做矩阵运算。
如果想做矩阵运算,例如矩阵乘法、求逆等,应该用 CSC 或者 CSR 类型的稀疏矩阵。
由于在内存中存储顺序的差异,csc_matrix 矩阵更适合取列切片,
而 csr_matrix 矩阵更适合用来取行切片。

以上是关于深度学习中使用稀疏矩阵的主要内容,如果未能解决你的问题,请参考以下文章

稀疏矩阵(Sparse Matrix)

SciPySparse稀疏矩阵主要存储格式总结(转载)

深度学习11-为什么使用卷积

机器学习中的稀疏矩阵简介

python中scipy学习——随机稀疏矩阵及操作

在朴素贝叶斯(Python、scikit)中使用稀疏矩阵/在线学习