作为图像重建问题的一部分,我需要将大的稀疏矩阵乘以矢量,然后遇到内存问题。我将如何将矩阵乘法分解为较小的问题而不引起内存问题?我已经在较小的矩阵上成功运行了以下代码
coo = HH.tocoo()
indices = np.mat([coo.row, coo.col]).transpose()
HH_sparse = tf.SparseTensorValue(indices, coo.data, coo.shape)
prod=tf.sparse_tensor_dense_matmul(HH_sparse,g)
out=sess.run(prod)
其中HH是125000x125000稀疏矩阵(194463780非零元素),g是密集矢量125000x1。使用这种方法我得到了错误
无法创建内容大于2GB的张量原型。
或者,我尝试使用feed_dict来输入HH矩阵,但是随后我得到了:
Dst张量未初始化
是否可以通过某种方式顺次馈入H矩阵的行的子集,以免GPU内存超载?