This is the reduction operation for the elementwisetf.math.addop.
Reducesinput_tensoralong the dimensions given inaxis.
Unlesskeepdimsis true, the rank of the tensor is reduced by 1 for each
of the entries inaxis, which must be unique. Ifkeepdimsis true, the
reduced dimensions are retained with length 1.
Ifaxisis None, all dimensions are reduced, and a
tensor with a single element is returned.
For example
```
x has a shape of (2, 3) (two rows and three columns):
[[["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 2025-08-07 UTC."],[],[],null,["# meridian.backend.reduce_sum\n\n\u003cbr /\u003e\n\nComputes the sum of elements across dimensions of a tensor. \n\n meridian.backend.reduce_sum(\n input_tensor, axis=None, keepdims=False, name=None\n )\n\nThis is the reduction operation for the elementwise `tf.math.add` op.\n\nReduces `input_tensor` along the dimensions given in `axis`.\nUnless `keepdims` is true, the rank of the tensor is reduced by 1 for each\nof the entries in `axis`, which must be unique. If `keepdims` is true, the\nreduced dimensions are retained with length 1.\n\nIf `axis` is None, all dimensions are reduced, and a\ntensor with a single element is returned.\n\n\u003cbr /\u003e\n\n\u003cbr /\u003e\n\n\u003cbr /\u003e\n\n| For example ----------- ||\n|---|---|\n| \\`\\`\\` \u003cbr /\u003e \u003e \u003e \u003e x has a shape of (2, 3) (two rows and three columns): \u003e \u003e \u003e ===================================================== \u003e \u003e \u003e x = tf.constant(\\[\\[1, 1, 1\\], \\[1, 1, 1\\]\\]) \u003e \u003e \u003e x.numpy() \u003e \u003e \u003e array(\\[\\[1, 1, 1\\], \u003e \u003e \u003e \\[1, 1, 1\\]\\], dtype=int32) \u003e \u003e \u003e sum all the elements \u003e \u003e \u003e ==================== \u003e \u003e \u003e 1 + 1 + 1 + 1 + 1+ 1 = 6 \u003e \u003e \u003e ======================== \u003e \u003e \u003e tf.reduce_sum(x).numpy().item() \u003e \u003e \u003e 6 \u003e \u003e \u003e reduce along the first dimension \u003e \u003e \u003e ================================ \u003e \u003e \u003e the result is \\[1, 1, 1\\] + \\[1, 1, 1\\] = \\[2, 2, 2\\] \u003e \u003e \u003e ===================================================== \u003e \u003e \u003e tf.reduce_sum(x, 0).numpy() \u003e \u003e \u003e array(\\[2, 2, 2\\], dtype=int32) \u003e \u003e \u003e reduce along the second dimension \u003e \u003e \u003e ================================= \u003e \u003e \u003e the result is \\[1, 1\\] + \\[1, 1\\] + \\[1, 1\\] = \\[3, 3\\] \u003e \u003e \u003e ======================================================= \u003e \u003e \u003e tf.reduce_sum(x, 1).numpy() \u003e \u003e \u003e array(\\[3, 3\\], dtype=int32) \u003e \u003e \u003e keep the original dimensions \u003e \u003e \u003e ============================ \u003e \u003e \u003e tf.reduce_sum(x, 1, keepdims=True).numpy() \u003e \u003e \u003e array(\\[\\[3\\], \u003e \u003e \u003e \\[3\\]\\], dtype=int32) \u003e \u003e \u003e reduce along both dimensions \u003e \u003e \u003e ============================ \u003e \u003e \u003e the result is 1 + 1 + 1 + 1 + 1 + 1 = 6 \u003e \u003e \u003e ======================================= \u003e \u003e \u003e or, equivalently, reduce along rows, then reduce the resultant array \u003e \u003e \u003e ==================================================================== \u003e \u003e \u003e \\[1, 1, 1\\] + \\[1, 1, 1\\] = \\[2, 2, 2\\] \u003e \u003e \u003e ======================================= \u003e \u003e \u003e 2 + 2 + 2 = 6 \u003e \u003e \u003e ============= \u003e \u003e \u003e tf.reduce_sum(x, \\[0, 1\\]).numpy().item() \u003e \u003e \u003e 6 \u003e \u003e \u003e \\`\\`\\` ||\n\n\u003cbr /\u003e\n\n\u003cbr /\u003e\n\n\u003cbr /\u003e\n\n\u003cbr /\u003e\n\n| Args ---- ||\n|----------------|----------------------------------------------------------------------------------------------------------------------------------------------|\n| `input_tensor` | The tensor to reduce. Should have numeric type. |\n| `axis` | The dimensions to reduce. If `None` (the default), reduces all dimensions. Must be in the range `[-rank(input_tensor), rank(input_tensor)]`. |\n| `keepdims` | If true, retains reduced dimensions with length 1. |\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, of the same dtype as the input_tensor. ||\n\n\u003cbr /\u003e\n\n\u003cbr /\u003e\n\nnumpy compatibility\n-------------------\n\n\u003cbr /\u003e\n\nEquivalent to np.sum apart the fact that numpy upcast uint8 and int32 to\nint64 while tensorflow returns the same dtype as the input.\n\n\u003cbr /\u003e\n\n\u003cbr /\u003e"]]