Tensorflow是否具有稀疏元素乘法? 即稀疏版本的tf.multiply()
我只找到了tf.sparse_tensor_dense_matmul(),但它不是元素乘法。
答案 0 :(得分:3)
您可能正在寻找的功能是:__mul__
官方文档中的其他详细信息:
与稀疏张量中的隐含零元素相对应的输出位置将为零(即,不会占用存储空间),无论密集张量的内容如何(即使它是+ / -INF和INF * 0 == NaN)。
限制:此操作系统仅向稀疏侧广播密集侧,但不向另一方向广播。
示例:
SELECT * FROM `photos` WHERE `user_id` = <user_id>
输出:
sp_mat = tf.SparseTensor([[0,0],[0,2],[1,2],[2,1]], np.ones(4), [3,3])
const1 = tf.constant([[1,2,3],[4,5,6],[7,8,9]], dtype=tf.float64)
const2 = tf.constant(np.array([1,2,3]),dtype=tf.float64)
elementwise_result = sp_mat.__mul__(const1)
broadcast_result = sp_mat.__mul__(const2)
print("Sparse Matrix:\n",tf.sparse_tensor_to_dense(sp_mat).eval())
print("\n\nElementwise:\n",tf.sparse_tensor_to_dense(elementwise_result).eval())
print("\n\nBroadcast:\n",tf.sparse_tensor_to_dense(broadcast_result).eval())