关于python:如何在张量流中进行稀疏张量和密集张量之间的元素乘法?

How to do elementwise multiplication between a sparse and a dense tensors in tensorflow?

Tensorflow 实现了 tf.sparse_tensor_dense_matmul 的稀疏到稠密矩阵乘法,但是它是否具有稀疏到稠密的元素乘法(两个张量具有相同的形状)?我想避免将我的稀疏张量转换为密集张量,因为它不适合内存。


我不相信有内置函数,但你可以相对容易地手动完成,至少如果你不打算支持广播的话。如果 xy 分别是。你的稀疏和密集张量,

1
res = tf.SparseTensor(x.indices, tf.gather_nd(y, x.indices) * x.values, x.dense_shape)

您可能还想在相乘之前检查 yx 的形状是否相同。