|
|
|
@ -415,7 +415,18 @@ class Partial(Primitive):
|
|
|
|
|
|
|
|
|
|
class Depend(Primitive):
|
|
|
|
|
"""
|
|
|
|
|
Depend is used for processing side-effect operations.
|
|
|
|
|
Depend is used for processing dependency operations.
|
|
|
|
|
|
|
|
|
|
In some side-effect scenarios, we need to ensure the execution order of operators.
|
|
|
|
|
In order to ensure that operator A is executed before operator B, it is recommended
|
|
|
|
|
to insert the Depend operator between operators A and B.
|
|
|
|
|
|
|
|
|
|
Previously, the ControlDepend operator was used to control the execution order.
|
|
|
|
|
Since the ControlDepend operator is deprecated from version 1.1, it is recommended
|
|
|
|
|
to use the Depend operator instead. The replacement method is as follows:
|
|
|
|
|
a = A(x) ---> a = A(x)
|
|
|
|
|
b = B(y) ---> y = Depend(y, a)
|
|
|
|
|
ControlDepend(a, b) ---> b = B(y)
|
|
|
|
|
|
|
|
|
|
Inputs:
|
|
|
|
|
- **value** (Tensor) - the real value to return for depend operator.
|
|
|
|
@ -426,6 +437,34 @@ class Depend(Primitive):
|
|
|
|
|
|
|
|
|
|
Supported Platforms:
|
|
|
|
|
``Ascend`` ``GPU`` ``CPU``
|
|
|
|
|
|
|
|
|
|
Examples:
|
|
|
|
|
>>> import numpy as np
|
|
|
|
|
>>> import mindspore
|
|
|
|
|
>>> import mindspore.nn as nn
|
|
|
|
|
>>> import mindspore.ops.operations as P
|
|
|
|
|
>>> from mindspore import Tensor
|
|
|
|
|
>>> class Net(nn.Cell):
|
|
|
|
|
... def __init__(self):
|
|
|
|
|
... super(Net, self).__init__()
|
|
|
|
|
... self.softmax = P.Softmax()
|
|
|
|
|
... self.depend = P.Depend()
|
|
|
|
|
...
|
|
|
|
|
... def construct(self, x, y):
|
|
|
|
|
... mul = x * y
|
|
|
|
|
... y = self.depend(y, mul)
|
|
|
|
|
... ret = self.softmax(y)
|
|
|
|
|
... return ret
|
|
|
|
|
...
|
|
|
|
|
>>> x = Tensor(np.ones([4, 5]), dtype=mindspore.float32)
|
|
|
|
|
>>> y = Tensor(np.ones([4, 5]), dtype=mindspore.float32)
|
|
|
|
|
>>> net = Net()
|
|
|
|
|
>>> output = net(x, y)
|
|
|
|
|
>>> print(output)
|
|
|
|
|
[[0.2 0.2 0.2 0.2 0.2]
|
|
|
|
|
[0.2 0.2 0.2 0.2 0.2]
|
|
|
|
|
[0.2 0.2 0.2 0.2 0.2]
|
|
|
|
|
[0.2 0.2 0.2 0.2 0.2]]
|
|
|
|
|
"""
|
|
|
|
|
|
|
|
|
|
@prim_attr_register
|
|
|
|
|