簡體   English   中英

是否有tf.multiply的稀疏版本?

[英]Is there a sparse version of tf.multiply?

Tensorflow是否具有稀疏元素明智乘法? 即tf.multiply()的稀疏版本

我只找到tf.sparse_tensor_dense_matmul(),但這不是元素明智的乘法。

您可能正在尋找的功能是: __mul__

官方文檔中的其他詳細信息:

稀疏張量中與隱式零元素相對應的輸出位置將為零 (即不會占用存儲空間),而不管密集張量的內容如何(即使它是+/- INF且INF * 0 == NaN)。

局限性 :該Op僅將密集的一側廣播到稀疏的一側,而不向其他方向廣播。

例:

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())

輸出:

Sparse Matrix:
 [[ 1.  0.  1.]
 [ 0.  0.  1.]
 [ 0.  1.  0.]]


Elementwise:
 [[ 1.  0.  3.]
 [ 0.  0.  6.]
 [ 0.  8.  0.]]


Broadcast:
 [[ 1.  0.  3.]
 [ 0.  0.  3.]
 [ 0.  2.  0.]]

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM