tf.sparse.softmax
Применяет softmax к пакету N-мерных SparseTensor.
tf.sparse.softmax(
sp_input, name=None
)
Входы представляют собой N-мерный SparseTensor с логической формой [..., B, C] (где N >= 2), и с индексами, отсортированными в каноническом лексикографическом порядке.
Этот оператор эквивалентен применению обычного tf.nn.softmax() к каждой внутренней логической подматрице с формой [B, C], но с тем нюансом, что неявные нулевые элементы не участвуют. В частности, алгоритм эквивалентен:
(1) Применяет tf.nn.softmax() к уплотнённому представлению каждой внутренней подматрицы с формой [B, C], вдоль размерности C; (2) Маскирует исходные неявные нулевые местоположения; (3) Перенормирует оставшиеся элементы.
Таким образом, SparseTensor результат имеет ровно те же ненулевые индексы и форму.
Пример использования 3-мерного 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-мерный SparseTensor, где N >= 2. |
name | необязательное имя операции. |
| Возвращает | |
|---|---|
output | N-мерный 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