gpt4 book ai didi

machine-learning - 与 tensorflow 上另一个稀疏矩阵指定的稀疏输出进行矩阵乘法

转载 作者:行者123 更新时间:2023-11-30 09:19:25 27 4
gpt4 key购买 nike

我想在 TensorFlow 上实现矩阵乘法,例如 C = A · B 其中 A ∈ ℝn,kB ∈ ℝk,n。就我而言,n 可能很大,但 k 通常很小(例如低等级或潜在嵌入)。

如您所知,稠密矩阵 C ∈ ℝn,n 在 RAM 中存储的成本很高。然而,我想保留的 C 中唯一的条目是稀疏的。也就是说,通过定义另一个稀疏矩阵 D ∈ ℝn,n,我真正关心的是那些索引 [i,j] 的值在 D 中。 D 中的非空值只能是 1

所以,不要做这样的事情:

tmp = tf.matmul(A,B)
C = tf.SparseTensor(D.indices, tf.gather_nd(tmp, D.indices)*D.values, D.dense_shape)

我想避免显式计算上面的稠密张量tmp

提前致谢!

最佳答案

我在这里找到了部分答案(不完整,因为我没有完全理解你的目标):Compressed matrix multiplication .

您可能正在询问称为“稀疏输出的矩阵乘法”的问题。

阅读第一部分(简介):

"Our method can be seen as a compressed sensing method for the matrix product, with the nonstandard idea that the SKETCH of AB is computed WITHOUT EXPLICITLY CONSTRUCTING AB"

在某些假设下(输出矩阵的稀疏性和草图数量)并使用错误校正代码,无需将 A 和 B 相乘即可获得初始乘积的最大条目。

请参见图 2 的示例。

关于machine-learning - 与 tensorflow 上另一个稀疏矩阵指定的稀疏输出进行矩阵乘法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45617709/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com