mindspore.ops.Primitive
- class mindspore.ops.Primitive(name)[source]
Primitive is the base class of primitives in python.
- Parameters
name (str) – Name for the current Primitive.
Examples
>>> add = Primitive('add') >>> >>> # or work with prim_attr_register: >>> # init a Primitive class with attr1 and attr2 >>> class Add(Primitive): ... @prim_attr_register ... def __init__(self, attr1, attr2): ... '''init for add''' ... # check attr1 and attr2 or do some initializations ... # init a Primitive obj with attr1=1 and attr2=2 >>> add = Add(attr1=1, attr2=2)
- add_prim_attr(name, value)[source]
Adds primitive attribute.
- Parameters
name (str) – Attribute Name.
value (Any) – Attribute value.
- check_elim(*args)[source]
Check if certain inputs should go to the backend. Subclass in need should override this method.
- Parameters
args (Primitive args) – Same as arguments of current Primitive.
- Returns
A tuple consisting of two elements. The first element indicates whether we should filter out current arguments; the seconde element is the output if we need to filter out the arguments.
- init_prim_io_names(inputs, outputs)[source]
Initializes the name of inputs and outputs of Tensor or attributes.
- recompute(mode=True)[source]
Set the primitive recomputed. If a primitive set recomputed feeds into some backward nodes for computing gradient, rather than storing the intermediate activation computed in forward pass, we will recompute it in backward pass.
Note
If the computation involves something like randomization or global variable, the equivalence is not guaranteed currently.
- Parameters
mode (bool) – Specifies whether the primitive is recomputed. Default: True.
- set_prim_instance_name(instance_name)[source]
Set instance name to primitive operator.
Note
It will be called by default when user defines primitive operator.
- Parameters
instance_name (str) – Instance name of primitive operator set by user.
- set_stage(stage)[source]
Add stage id to primitive attribute.
Note
It is valid only in semi auto parallel. In other parallel modes, please set it to be 0.
- Parameters
stage (int) – The stage id for the current operation
- shard(strategy)[source]
Add strategies to primitive attribute.
Note
It is valid only in semi auto parallel or auto parallel mode. In other parallel modes, strategies set here will be ignored.
- Parameters
strategy (tuple) – Strategy describes the distributed parallel mode of the current primitive.
- property update_parameter
Whether the primitive will update the value of parameter.