megengine.functional.add¶
- add(x, y)[源代码]¶
逐元素相加。
计算输入 \(x\) 与输入 \(y\) 的逐元素和。
- 参数
- 返回类型
- 返回
返回一个逐元素求和之后的 Tensor,其类型由 类型提升规则 规则决定。
特殊的案例
对于浮点数的操作,
如果输入 \(x\) 或 \(y\) 为
Nan
,结果为Nan
。如果 \(x\) 是
+infinity
,\(y\) 是-infinity
,则结果为Nan
。如果 \(x\) 是
-infinity
,\(y\) 是+infinity
,则结果为Nan
。如果 \(x\) 是
+infinity
,\(y\) 是+infinity
,则结果为+infinity
。如果 \(x\) 是
-infinity
,\(y\) 是-infinity
,则结果为-infinity
。如果 \(x\) 是
+infinity
,\(y\) 是一个有限的数,则结果为+infinity
。如果 \(x\) 是
-infinity
,\(y\) 是一个有限的数,则结果为-infinity
。如果 \(x\) 是一个有限的数,\(y\) 是
+infinity
,则结果为+infinity
。如果 \(x\) 是一个有限的数,\(y\) 是
-infinity
,则结果为-infinity
。如果 \(x\) 是
-0
,\(y\) 是-0
,则结果为-0
。如果 \(x\) 是
-0
,\(y\) 是+0
,则结果为+0
。如果 \(x\) 是
+0
,\(y\) 是-0
,则结果为+0
。如果 \(x\) 是
+0
,\(y\) 是+0
,则结果为+0
。如果 \(x\) 是
-0
或+0
,\(y\) 是一个非零数,则结果为y
。如果 \(x\) 是一个非零数,\(y\) 是
+0
或-0
,则结果为x
。如果 \(x\) 是一个非零数,\(y\) 是 \(-x\),则结果为
+0
。在其余情况下,当既不涉及“无穷大”、“+0”、“-0”或“NaN”,并且操作数具有相同的数学符号或具有不同的大小时, 必须根据 IEEE 754-2019 和支持的舍入模式计算总和,并舍入到最接近的可被表示的值。 如果数值范围太大而无法表示,则运算结果溢出,结果为
+infinity `` 或 ``-infinity
。
注解
浮点加法是一种可被交换的运算,但并不总是可被结合的。
+
运算符可以用作 Tensor 上add
的简写。
实际案例
>>> F.add(1.0, 4.0) Tensor(5.0, device=xpux:0)
逐元素相加:
>>> x = Tensor([[1, 2, 3], [4, 5, 6]]) >>> y = Tensor([[1, 1, 1], [2, 2, 2]]) >>> F.add(x, y) Tensor([[2 3 4] [6 7 8]], dtype=int32, device=xpux:0)
广播:
>>> x = Tensor([[1, 2, 3], [4, 5, 6]]) >>> F.add(x, 1) Tensor([[2 3 4] [5 6 7]], dtype=int32, device=xpux:0)