2022-02-10 20:57:43 +08:00
|
|
|
|
mindspore.ops.PrimitiveWithCheck
|
|
|
|
|
|
================================
|
|
|
|
|
|
|
2022-02-18 15:36:51 +08:00
|
|
|
|
.. py:class:: mindspore.ops.PrimitiveWithCheck(name)
|
2022-02-10 20:57:43 +08:00
|
|
|
|
|
|
|
|
|
|
PrimitiveWithCheck是Python中原语的基类,定义了检查算子输入参数的函数,但是使用了C++源码中注册的推理方法。
|
|
|
|
|
|
|
|
|
|
|
|
可以重写三个方法来定义Primitive的检查逻辑: __check__()、check_shape()和check_dtype()。如果在Primitive中定义了__check__(),则__check__()的优先级最高。
|
2022-02-18 15:36:51 +08:00
|
|
|
|
|
2022-02-10 20:57:43 +08:00
|
|
|
|
如果未定义__check__(),则可以定义check_shape()和check_dtype()来描述形状和类型的检查逻辑。可以定义infer_value()方法(如PrimitiveWithInfer),用于常量传播。
|
|
|
|
|
|
|
2022-07-26 16:39:37 +08:00
|
|
|
|
参数:
|
|
|
|
|
|
- **name** (str) - 当前Primitive的名称。
|
2022-02-10 20:57:43 +08:00
|
|
|
|
|
|
|
|
|
|
.. py:method:: check_dtype(*args)
|
|
|
|
|
|
|
|
|
|
|
|
检查输入参数的数据类型。
|
|
|
|
|
|
|
2022-07-26 16:39:37 +08:00
|
|
|
|
参数:
|
|
|
|
|
|
- **args** (:class:`mindspore.dtype`) - 输入的数据类型。
|
2022-02-10 20:57:43 +08:00
|
|
|
|
|
2022-07-26 16:39:37 +08:00
|
|
|
|
返回:
|
|
|
|
|
|
None。
|
2022-02-10 20:57:43 +08:00
|
|
|
|
|
|
|
|
|
|
.. py:method:: check_shape(*args)
|
|
|
|
|
|
|
|
|
|
|
|
检查输入参数的shape。
|
|
|
|
|
|
|
|
|
|
|
|
.. note::
|
|
|
|
|
|
Scalar的shape是一个空元组。
|
|
|
|
|
|
|
2022-07-26 16:39:37 +08:00
|
|
|
|
参数:
|
|
|
|
|
|
- **args** (tuple(int)) - 输入tensor的shape。
|
2022-02-10 20:57:43 +08:00
|
|
|
|
|
2022-07-26 16:39:37 +08:00
|
|
|
|
返回:
|
|
|
|
|
|
None。
|