静态图语法-运算符
算术运算符和赋值运算符支持Number和Tensor运算,也支持不同dtype的Tensor运算。
单目算术运算符
| 单目算术运算符 | 支持类型 | 
|---|---|
| 
 | 
 | 
| 
 | 
 | 
| 
 | 
 | 
说明:
- 在Python中 - ~操作符对输入的整数按位取反; MindSpore对- ~的功能重新定义为对- Tensor(Bool)的逻辑取反。
二元算术运算符
| 二元算术运算符 | 支持类型 | 
|---|---|
| 
 | 
 | 
| 
 | 
 | 
| 
 | 
 | 
| 
 | 
 | 
| 
 | 
 | 
| 
 | 
 | 
| 
 | 
 | 
| 
 | 
 | 
| 
 | 
 | 
| 
 | 
 | 
| 
 | 
 | 
| 
 | 
 | 
| 
 | 
 | 
限制:
- 当左右操作数都为 - number类型时,不支持- float64和- int32间的运算。- +、- -、- *、- /、- %、- **、- //支持左右操作数的值同时为- bool。
- 当任一操作数为 - tensor类型时,左右操作数的值不可同时为- bool。
- list/tuple和- number进行- *运算时表示将- list/tuple复制- number份后串联起来,- list内的数据类型可以是图模式下支持的任意数据类型,也支持多层嵌套。- tuple内的数据类型必须为- number、- string、- none,也支持多层嵌套。
赋值运算符
| 赋值运算符 | 支持类型 | 
|---|---|
| 
 | MindSpore支持的Python内置数据类型和MindSpore自定义数据类型 | 
| 
 | 
 | 
| 
 | 
 | 
| 
 | 
 | 
| 
 | 
 | 
| 
 | 
 | 
| 
 | 
 | 
| 
 | 
 | 
| 
 | 
 | 
| 
 | 
 | 
| 
 | 
 | 
| 
 | 
 | 
| 
 | 
 | 
| 
 | 
 | 
限制:
- 当 - AugAssign的左右操作数都为- number类型时,- number的值不可为- bool类型。
- 当 - AugAssign的左右操作数都为- number类型时,不支持- float64和- int32间的运算。
- 当 - AugAssign的任一操作数为- tensor类型时,左右操作数的值不可同时为- bool。
- list/tuple和- number进行- *=运算时表示将- list/tuple复制- number份后串联起来,- list/tuple内对象的元素可以包含任意图模式支持的类型,也支持多层嵌套。
逻辑运算符
| 逻辑运算符 | 支持类型 | 
|---|---|
| 
 | 
 | 
| 
 | 
 | 
| 
 | 
 | 
限制:
- and、- or的左操作数必须要能被转换成布尔值。例如:左操作数不能为存在多个元素的Tensor。当- and、- or的左操作数是变量Tensor时,右操作数必须也是同类型Tensor且Tensor成员个数只能有一个。在其余情况下,右操作数无要求。
比较运算符
| 比较运算符 | 支持类型 | 
|---|---|
| 
 | 
 | 
| 
 | 与 | 
| 
 | 仅支持判断是 | 
| 
 | 仅支持判断不是 | 
| < | 
 | 
| <= | 
 | 
| > | 
 | 
| >= | 
 | 
| != | 
 | 
| == | 
 | 
限制:
- 对于 - <、- <=、- >、- >=、- !=来说,当左右操作数都为- number类型时,- number的值不可为- bool类型。
- 对于 - <、- <=、- >、- >=、- !=、- ==来说,当左右操作数都为- number类型时,不支持- float64和- int32间的运算。
- 对于 - <、- <=、- >、- >=、- !=、- ==来说,当左右任一操作数为- tensor类型时,左右操作数的值不可同时为- bool。
- 对于 - ==来说,当左右操作数都为- number类型时,支持左右操作数同时为- bool,不支持只有一个操作数为- bool。
- 对于 - !=、- ==来说除- mstype外,其他取值均可和- None进行比较来判空。