TensorFlow函數(shù):tf.sparse_add

2018-02-23 14:30 更新

tf.sparse_add 函數(shù)

sparse_add(
    a,
    b,
    thresh=0
)

定義在:tensorflow/python/ops/sparse_ops.py.

請(qǐng)參閱指南:稀疏張量>數(shù)學(xué)運(yùn)算

添加兩個(gè)張量,其中至少有一個(gè)是 SparseTensor.

如果傳入的是一個(gè) SparseTensor 和一個(gè) Tensor,則返回一個(gè) Tensor.如果兩個(gè)參數(shù)都是 SparseTensors,則返回 SparseTensor.參數(shù)的順序無(wú)關(guān)緊要.使用 vanilla tf.add() 添加兩個(gè)密集的Tensors.

兩個(gè)操作數(shù)的形狀必須匹配:不支持廣播.

任何輸入 SparseTensor 的索引都假定按標(biāo)準(zhǔn)詞典順序排序.如果不是這種情況,在此步驟之前運(yùn)行 SparseReorder 以還原索引排序.

如果兩個(gè)參數(shù)都很稀疏,我們按如下所示執(zhí)行“剪切”.默認(rèn)情況下,如果在某個(gè)索引處兩個(gè)值總和為零,則輸出 SparseTensor 仍然會(huì)在其索引中包含該特定位置,并在相應(yīng)的值槽中存儲(chǔ)一個(gè)零.為了重寫(xiě)此項(xiàng),調(diào)用者可以指定 thresh,指示如果總和具有嚴(yán)格小于 thresh 的大小,則不包括其相應(yīng)的值和索引.特別是,thresh == 0.0(默認(rèn))意味著一切都保持不變,實(shí)際的閾值只發(fā)生在正值上.

例如,假設(shè)兩個(gè)稀疏操作數(shù)的邏輯和為(致密):

[       2]
[.1     0]
[ 6   -.2]

然后:

* `thresh == 0` (the default): all 5 index/value pairs will be returned.
* `thresh == 0.11`: only .1 and 0 will vanish, and the remaining three
    index/value pairs will be returned.
* `thresh == 0.21`: .1, 0, and -.2 will vanish.

函數(shù)參數(shù):

  • a:第一個(gè)操作數(shù);可以是 SparseTensor 或者 Tensor.
  • b:第二個(gè)操作數(shù);可以是 SparseTensor 或者 Tensor.至少有一個(gè)操作數(shù)必須是 SparseTensor.
  • thresh:一個(gè) 0-D Tensor,用于確定輸出的值/索引(value/index)對(duì)是否占用空間的幅度閾值.如果它們是真實(shí)的,它的dtype應(yīng)該與值相匹配;如果后者是:complex64/complex128,則相應(yīng)地,dtype應(yīng)該是:float32/float64.

返回值:

該函數(shù)返回一個(gè) SparseTensor 或 Tensor,表示總和.

可能引發(fā)的異常:

  • TypeError:如果兩個(gè)操作數(shù) a 和 b 都是 Tensor,則改為使用 tf.add().
以上內(nèi)容是否對(duì)您有幫助:
在線(xiàn)筆記
App下載
App下載

掃描二維碼

下載編程獅App

公眾號(hào)
微信公眾號(hào)

編程獅公眾號(hào)