This is the reduction operation for the elementwise tf.sparse.maximum op.
This Op takes a SparseTensor and is the sparse counterpart to
tf.reduce_max(). In particular, this Op also returns a dense Tensor
if output_is_sparse is False, or a SparseTensor if output_is_sparse
is True.
Reduces sp_input along the dimensions given in axis. Unless
keepdims is true, the rank of the tensor is reduced by 1 for each entry in
axis. If keepdims is true, the reduced dimensions are retained
with length 1.
If axis has no entries, all dimensions are reduced, and a tensor
with a single element is returned. Additionally, the axes can be negative,
similar to the indexing rules in Python.
The values not defined in sp_input don't participate in the reduce max,
as opposed to be implicitly assumed 0 -- hence it can return negative values
for sparse axis. But, in case there are no values in
axis, it will reduce to 0. See second example below.
[[["Easy to understand","easyToUnderstand","thumb-up"],["Solved my problem","solvedMyProblem","thumb-up"],["Other","otherUp","thumb-up"]],[["Missing the information I need","missingTheInformationINeed","thumb-down"],["Too complicated / too many steps","tooComplicatedTooManySteps","thumb-down"],["Out of date","outOfDate","thumb-down"],["Samples / code issue","samplesCodeIssue","thumb-down"],["Other","otherDown","thumb-down"]],["Last updated 2024-04-26 UTC."],[],[],null,["# tf.sparse.reduce_max\n\n\u003cbr /\u003e\n\n|--------------------------------------------------------------------------------------------------------------------------------|\n| [View source on GitHub](https://github.com/tensorflow/tensorflow/blob/v2.16.1/tensorflow/python/ops/sparse_ops.py#L1246-L1338) |\n\nComputes [`tf.sparse.maximum`](../../tf/sparse/maximum) of elements across dimensions of a SparseTensor. \n\n tf.sparse.reduce_max(\n sp_input, axis=None, keepdims=None, output_is_sparse=False, name=None\n )\n\n### Used in the notebooks\n\n| Used in the guide |\n|---------------------------------------------------------------------------------|\n| - [Working with sparse tensors](https://www.tensorflow.org/guide/sparse_tensor) |\n\nThis is the reduction operation for the elementwise [`tf.sparse.maximum`](../../tf/sparse/maximum) op.\n\nThis Op takes a SparseTensor and is the sparse counterpart to\n[`tf.reduce_max()`](../../tf/math/reduce_max). In particular, this Op also returns a dense `Tensor`\nif `output_is_sparse` is `False`, or a `SparseTensor` if `output_is_sparse`\nis `True`.\n| **Note:** A gradient is not defined for this function, so it can't be used in training models that need gradient descent.\n\nReduces `sp_input` along the dimensions given in `axis`. Unless\n`keepdims` is true, the rank of the tensor is reduced by 1 for each entry in\n`axis`. If `keepdims` is true, the reduced dimensions are retained\nwith length 1.\n\nIf `axis` has no entries, all dimensions are reduced, and a tensor\nwith a single element is returned. Additionally, the axes can be negative,\nsimilar to the indexing rules in Python.\n\nThe values not defined in `sp_input` don't participate in the reduce max,\nas opposed to be implicitly assumed 0 -- hence it can return negative values\nfor sparse `axis`. But, in case there are no values in\n`axis`, it will reduce to 0. See second example below.\n\n\u003cbr /\u003e\n\n\u003cbr /\u003e\n\n\u003cbr /\u003e\n\n| For example ----------- ||\n|---|---|\n| \u003cbr /\u003e 'x' represents \\[\\[1, ?, 2\\] ============================ \\[?, 3, ?\\]\\] ============= where ? is implicitly-zero. =========================== x = tf.sparse.SparseTensor([[0, 0], [0, 2], [1, 1]], [1, 2, 3], [2, 3]) tf.sparse.reduce_max(x) \u003ctf.Tensor: shape=(), dtype=int32, numpy=3\u003e tf.sparse.reduce_max(x, 0) \u003ctf.Tensor: shape=(3,), dtype=int32, numpy=array([1, 3, 2], dtype=int32)\u003e tf.sparse.reduce_max(x, 1) \u003ctf.Tensor: shape=(2,), dtype=int32, numpy=array([2, 3], dtype=int32)\u003e tf.sparse.reduce_max(x, 1, keepdims=True) \u003ctf.Tensor: shape=(2, 1), dtype=int32, numpy= array([[2], [3]], dtype=int32)\u003e tf.sparse.reduce_max(x, [0, 1]) \u003ctf.Tensor: shape=(), dtype=int32, numpy=3\u003e 'y' represents \\[\\[-7, ?\\] ========================== \\[ 4, 3\\] ========= \\[ ?, ?\\] ========= y = tf.sparse.SparseTensor([[0, 0,], [1, 0], [1, 1]], [-7, 4, 3], [3, 2]) tf.sparse.reduce_max(y, 1) \u003ctf.Tensor: shape=(3,), dtype=int32, numpy=array([-7, 4, 0], dtype=int32)\u003e \u003cbr /\u003e ||\n\n\u003cbr /\u003e\n\n\u003cbr /\u003e\n\n\u003cbr /\u003e\n\n\u003cbr /\u003e\n\n| Args ---- ||\n|--------------------|--------------------------------------------------------------------------------------------|\n| `sp_input` | The SparseTensor to reduce. Should have numeric type. |\n| `axis` | The dimensions to reduce; list or scalar. If `None` (the default), reduces all dimensions. |\n| `keepdims` | If true, retain reduced dimensions with length 1. |\n| `output_is_sparse` | If true, returns a `SparseTensor` instead of a dense `Tensor` (the default). |\n| `name` | A name for the operation (optional). |\n\n\u003cbr /\u003e\n\n\u003cbr /\u003e\n\n\u003cbr /\u003e\n\n\u003cbr /\u003e\n\n| Returns ------- ||\n|---|---|\n| The reduced Tensor or the reduced SparseTensor if `output_is_sparse` is True. ||\n\n\u003cbr /\u003e"]]