【发布时间】:2020-07-09 01:40:04
【问题描述】:
任务是执行一个大小为 (87236 x 1) 的向量和一个大小为 (87236 x 87236) 的下三角矩阵相乘。
由于下三角形的尺寸非常大,我无法初始化它。
我遇到了tf.linalg.LinearOperationLowerTriangular() 运算符,它忽略了矩阵的上三角部分。以下是我尝试过的结果:
tril = tf.ones((4, 21809 , 21809))
lmt = tf.linalg.LinearOperatorLowerTriangular(tril)
x = tf.random.normal((87236, 1))
x = tf.reshape(x , (4, 21809,1))
lmt.matmul(x)
按照我得到的错误:
tensorflow.python.framework.errors_impl.ResourceExhaustedError: OOM
when allocating tensor with shape[4,21809,21809] and type float on
/job:localhost/replica:0/task:0/device:GPU:0 by allocator GPU_0_bfc
[Op:MatrixBandPart]
您能否建议我如何有效地执行此任务?我想分批执行它是解决方案,但是如何分批初始化下三角矩阵?
【问题讨论】:
标签: python tensorflow tensorflow2.0 matrix-multiplication