When adding two input values of different shapes, math.add follows the general
broadcasting rules
. The two input array shapes are compared element-wise. Starting with the
trailing dimensions, the two dimensions either have to be equal or one of them
needs to be 1.
[null,null,["Last updated 2021-05-14 UTC."],[],[],null,["# tf.raw_ops.Add\n\n\u003cbr /\u003e\n\nReturns x + y element-wise.\n\n#### View aliases\n\n\n**Compat aliases for migration**\n\nSee\n[Migration guide](https://www.tensorflow.org/guide/migrate) for\nmore details.\n\n[`tf.compat.v1.raw_ops.Add`](https://www.tensorflow.org/api_docs/python/tf/raw_ops/Add)\n\n\u003cbr /\u003e\n\n tf.raw_ops.Add(\n x, y, name=None\n )\n\nExample usages below.\n\nAdd a scalar and a list: \n\n x = [1, 2, 3, 4, 5]\n y = 1\n tf.add(x, y)\n \u003ctf.Tensor: shape=(5,), dtype=int32, numpy=array([2, 3, 4, 5, 6], dtype=int32)\u003e\n\nNote that binary `+` operator can be used instead: \n\n x = tf.convert_to_tensor([1, 2, 3, 4, 5])\n y = tf.convert_to_tensor(1)\n x + y\n \u003ctf.Tensor: shape=(5,), dtype=int32, numpy=array([2, 3, 4, 5, 6], dtype=int32)\u003e\n\nAdd a tensor and a list of same shape: \n\n x = [1, 2, 3, 4, 5]\n y = tf.constant([1, 2, 3, 4, 5])\n tf.add(x, y)\n \u003ctf.Tensor: shape=(5,), dtype=int32,\n numpy=array([ 2, 4, 6, 8, 10], dtype=int32)\u003e\n\n| **Warning:** If one of the inputs (`x` or `y`) is a tensor and the other is a non-tensor, the non-tensor input will adopt (or get casted to) the data type of the tensor input. This can potentially cause unwanted overflow or underflow conversion.\n\nFor example, \n\n x = [2**7 + 1, 2**7 + 2]\n y = tf.constant([1, 2], dtype=tf.int8)\n tf.add(x, y)\n \u003ctf.Tensor: shape=(2,), dtype=int8, numpy=array([-126, -124], dtype=int8)\u003e\n\nWhen adding two input values of different shapes, [`math.add`](../../tf/math/add) follows the [general\nbroadcasting rules](https://numpy.org/doc/stable/user/basics.broadcasting.html#general-broadcasting-rules)\n. The two input array shapes are compared element-wise. Starting with the\ntrailing dimensions, the two dimensions either have to be equal or one of them\nneeds to be `1`.\n\nFor example, \n\n x = np.ones(6).reshape(1, 2, 1, 3)\n y = np.ones(6).reshape(2, 1, 3, 1)\n tf.add(x, y).shape.as_list()\n [2, 2, 3, 3]\n\nAnother example with two arrays of different dimension. \n\n x = np.ones([1, 2, 1, 4])\n y = np.ones([3, 4])\n tf.add(x, y).shape.as_list()\n [1, 2, 3, 4]\n\nThe reduction version of this elementwise operation is [`tf.math.reduce_sum`](../../tf/math/reduce_sum)\n\n\u003cbr /\u003e\n\n\u003cbr /\u003e\n\n\u003cbr /\u003e\n\n| Args ---- ||\n|--------|----------------------------------------------------------------------------------------------------------------------------------------------------------------------------|\n| `x` | A `Tensor`. Must be one of the following types: `bfloat16`, `half`, `float32`, `float64`, `uint8`, `int8`, `int16`, `int32`, `int64`, `complex64`, `complex128`, `string`. |\n| `y` | A `Tensor`. Must have the same type as `x`. |\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| A `Tensor`. Has the same type as `x`. ||\n\n\u003cbr /\u003e"]]