TensorFlow函數(shù):tf.sparse_softmax

2018-03-12 11:27 更新

tf.sparse_softmax 函數(shù)

sparse_softmax(
    sp_input,
    name=None
)

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

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

將 softmax 應(yīng)用于批量的 N 維 SparseTensor.

在 tf.sparse_softmax 函數(shù)中輸入代表一個具有邏輯形狀[..., B, C](其中N >= 2)的 N 維 SparseTensor ,并且具有按照規(guī)范詞典順序排序的索引.

這個操作相當(dāng)于將 tf.nn.softmax() 應(yīng)用于具有形狀 [B, C] 的每個最內(nèi)層邏輯子矩陣,但是有了catch,隱式零元素不參與.具體來說,該算法等同于:

  1. 將 tf.nn.softmax () 應(yīng)用于每個內(nèi)層子矩陣的致密視圖,其形狀為 [B, C],沿著大小為 C 的維度;
  2. 掩蓋原始的隱式零元素;
  3. 重新規(guī)格化剩余的元素.

因此,SparseTensor 結(jié)果具有完全相同的非零指數(shù)和形狀.

以下是一個示例:

# First batch:
# [?   e.]
# [1.  ? ]
# Second batch:
# [e   ? ]
# [e   e ]
shape = [2, 2, 2]  # 3-D SparseTensor
values = np.asarray([[[0., np.e], [1., 0.]], [[np.e, 0.], [np.e, np.e]]])
indices = np.vstack(np.where(values)).astype(np.int64).T

result = tf.sparse_softmax(tf.SparseTensor(indices, values, shape))
# ...returning a 3-D SparseTensor, equivalent to:
# [?   1.]     [1    ?]
# [1.  ? ] and [.5  .5]
# where ? means implicitly zero

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

  • sp_input:表示 N 維 SparseTensor,其中 N >= 2.
  • name:操作的可選名稱.

函數(shù)返回值:

  • output:表示結(jié)果的 N 維 SparseTensor.
以上內(nèi)容是否對您有幫助:
在線筆記
App下載
App下載

掃描二維碼

下載編程獅App

公眾號
微信公眾號

編程獅公眾號