mindspore.ops.vjp
- mindspore.ops.vjp(fn, inputs, v)[source]
Compute the vector-jacobian-product of the given network.
- Parameters
- Returns
Tuple, tuple of output and vjp.
netout (Tensors or Tuple of Tensors) - The output of “fn(inputs)”.
vjp (Tensors or Tuple of Tensors) - The result of the dot product.
- Raises
TypeError – If the input is not a tensor or tuple or list of tensors.
- Supported Platforms:
Ascend
GPU
CPU
Examples
>>> from mindspore.ops import functional as F >>> from mindspore import Tensor >>> class Net(nn.Cell): ... def construct(self, x, y): ... return x**3 + y >>> x = Tensor(np.array([[1, 2], [3, 4]]).astype(np.float32)) >>> y = Tensor(np.array([[1, 2], [3, 4]]).astype(np.float32)) >>> v = Tensor(np.array([[1, 1], [1, 1]]).astype(np.float32)) >>> output = F.vjp(Net(), (x, y), v) >>> print(output[0]) [[ 2. 10.] [30. 68.]] >>> print(output[1]) (Tensor(shape=[2, 2], dtype=Float32, value= [[ 3.00000000e+00, 1.20000000e+01], [ 2.70000000e+01, 4.80000000e+01]]), Tensor(shape=[2, 2], dtype=Float32, value= [[ 1.00000000e+00, 1.00000000e+00], [ 1.00000000e+00, 1.00000000e+00]]))