tf.sparse.softmax
Применяет softmax к пакетному N-D SparseTensor.
tf.sparse.softmax(
sp_input, name=None
)
Входные данные представляют собой N-D SparseTensor с логической формой [..., B, C] (где N >= 2), а индексы отсортированы в каноническом лексикографическом порядке.
Эта операция эквивалентна применению обычной функции tf.nn.softmax() к каждой самой внутренней логической подматрице формы [B, C], за исключением того, что неявно нулевые элементы не участвуют. В частности, алгоритм эквивалентен следующим действиям:
(1) Применение tf.nn.softmax() к плотному представлению каждой самой внутренней подматрицы формы [B, C] вдоль измерения размера C; (2) Маскирование исходных неявно нулевых элементов; (3) Нормализация оставшихся элементов.
Таким образом, результат SparseTensor имеет в точности те же ненулевые индексы и форму.
Пример с 3-D SparseTensor:
st = tf.sparse.from_dense(
[[[0., np.e],
[1., 0.]],
[[np.e, 0.],
[np.e, np.e]]])
res = tf.sparse.softmax(st)
res.indices
<tf.Tensor: shape=(5, 3), dtype=int64, numpy=
array([[0, 0, 1],
[0, 1, 0],
[1, 0, 0],
[1, 1, 0],
[1, 1, 1]])>
res.values
<tf.Tensor: ... numpy=array([1. , 1. , 1. , 0.5, 0.5], dtype=float32)>
res.dense_shape
<tf.Tensor: shape=(3,), dtype=int64, numpy=array([2, 2, 2])>
tf.sparse.to_dense(res)
<tf.Tensor: shape=(2, 2, 2), dtype=float32, numpy=
array([[[0. , 1. ],
[1. , 0. ]],
[[1. , 0. ],
[0.5, 0.5]]], dtype=float32)>
| Аргументы | |
|---|---|
sp_input | N-D SparseTensor, где N >= 2. |
name | необязательное имя операции. |
| Возвращает | |
|---|---|
output | N-D SparseTensor, представляющий результаты. |
© 2022 The TensorFlow Authors. All rights reserved.
Licensed under the Creative Commons Attribution License 4.0.
Code samples licensed under the Apache 2.0 License.
https://www.tensorflow.org/api_docs/python/tf/sparse/softmax