Link Search Menu Expand Document

SparseSoftmax


tensorflow C++ API

tensorflow::ops::SparseSoftmax

Applies softmax to a batched N-D SparseTensor.


Summary

The inputs represent an N-D SparseTensor with logical shape [..., B, C] (where N >= 2), and with indices sorted in the canonical lexicographic order.

This op is equivalent to applying the normal tf.nn.softmax() to each innermost logical submatrix with shape [B, C], but with the catch that the implicitly zero elements do not participate. Specifically, the algorithm is equivalent to the following:

(1) Applies tf.nn.softmax() to a densified view of each innermost submatrix with shape [B, C], along the size-C dimension; (2) Masks out the original implicitly-zero locations; (3) Renormalizes the remaining elements.

Hence, the SparseTensor result has exactly the same non-zero indices and shape.

Arguments:

  • scope: A Scope object
  • sp_indices: 2-D. NNZ x R matrix with the indices of non-empty values in a SparseTensor, in canonical ordering.
  • sp_values: 1-D. NNZ non-empty values corresponding tosp_indices.
  • sp_shape: 1-D. Shape of the input SparseTensor.

Returns:

  • Output: 1-D. The NNZ values for the result SparseTensor .

SparseSoftmax block

Source link : https://github.com/EXPNUNI/enuSpaceTensorflow/blob/master/enuSpaceTensorflow/tf_sparse.cpp

Argument:

  • Scope scope : A Scope object (A scope is generated automatically each page. A scope is not connected.)
  • Input sp_indices: connect Input node.
  • Input sp_values: connect Input node.
  • Input sp_shape: connect Input node.

Return:

  • Output output: Output object of SparseSoftmax class object.

Result:

  • std::vector(Tensor) product_result : Returned object of executed result by calling session.

Using Method