megengine.functional.div¶
- div(x, y)[源代码]¶
 Element-wise division.
计算输入 \(x\) 与输入 \(y\) 的逐元素除。
- 参数
 - 返回类型
 - 返回
 返回一个逐元素运算之后的 Tensor,其数值类型由 类型提升规则 规则决定。
特殊的案例
对于浮点数的操作,
如果输入 \(x\) 或 \(y\) 为
Nan,结果为Nan。如果 \(x\) 是
+infinity或-infinity,并且 \(y\) 是+infinity或-infinity, 则计算结果为NaN。如果 \(x\) 是
+0或-0,并且 \(y\) 是+0或-0, 则计算结果为NaN。如果 \(x\) 是
+0,\(y\) 大于0, 则计算结果为+0。如果 \(x\) 是
-0,\(y\) 大于0, 则计算结果为-0。如果 \(x\) 是
+0, \(y\) 小于0, 则计算结果为-0。如果 \(x\) 是
-0, \(y\) 小于0, 则计算结果为+0。如果 \(x\) 大于
0,\(y\) 是+0, 则计算结果为+infinity。如果 \(x\) 大于
0, \(y\) 是-0, 则计算结果为-infinity。如果 \(x\) 小于
0, \(y\) 是+0, 则计算结果为-infinity。如果 \(x\) 小于
0, \(y\) 是-0, 则计算结果为+infinity。如果 \(x\) 是
+infinity,\(y\) 是一个大于 0 的有限数,则计算结果为+infinity。如果 \(x\) 是
+infinity,\(y\) 是一个小于 0 的有限数,则计算结果为-infinity。如果 \(x\) 是
-infinity,\(y\) 是一个大于 0 的有限数,则计算结果为-infinity。如果 \(x\) 是
-infinity,\(y\) 是一个小于 0 的有限数,则计算结果为+infinity。如果 \(x\) 正有限数,\(y\) 是
+infinity, 则计算结果为+0。如果 \(x\) 正有限数,\(y\) 是
-infinity, 则计算结果为-0。如果 \(x\) 负有限数,\(y\) 是
+infinity, 则计算结果为-0。如果 \(x\) 负有限数,\(y\) 是
-infinity, 则计算结果为+0。如果 \(x\) 和 \(y\) 为同一符号的有限数, 则计算结果为正数.
如果 \(x\) 和 \(y\) 为不同符号的有限数, 则计算结果为负数.
在其余情况下,既不涉及 “-infinity”、“+0”、“-0”,也不涉及 “NaN”,则会将计算结果四舍五入为最接近的可表示值 ,符合 IEEE 754-2019 和支持的舍入模式。 如果数值太大而无法表示,则运算溢出,结果为正无穷大或负无穷大。 如果数值太小而无法表示,则运算下溢,结果为
+0或-0。
注解
/运算符可以用作 Tensor 上div的简写。参见
在 Python 中,
//是整除运算符,见floor_div,/是除运算符。实际案例
>>> F.div(1.0, 4.0) Tensor(0.25, device=xpux:0)
Element-wise division:
>>> x = Tensor([[1, 2, 3], [4, 5, 6]]) >>> y = Tensor([[1, 1, 1], [2, 2, 2]]) >>> F.div(x, y) Tensor([[1. 2. 3. ] [2. 2.5 3. ]], device=xpux:0)
Broadcasting:
>>> x = Tensor([[1, 2, 3], [4, 5, 6]]) >>> F.div(x, 2) Tensor([[0.5 1. 1.5] [2. 2.5 3. ]], device=xpux:0)