sciai.operators.JacobianWeights

查看源文件
class sciai.operators.JacobianWeights(model, out_shape, out_type=ms.float32)[源代码]

关于权重的雅可比矩阵。输入元组中的最后一个输入Tensor是权重Parameter,其余为网络的输入。

参数:
  • model (Cell) - 用于计算关于权重的雅可比的网络。

  • out_shape (tuple) - 网络输出的形状。

  • out_type (type) - Mindspore 数据类型。 默认值:ms.float32。

输入:
  • *x (tuple[Tensor]) - 网络的输入,和用于求雅可比矩阵的权重。

输出:

Tensor,网络输出关于指定权重的雅可比矩阵。

样例:

>>> import mindspore as ms
>>> from mindspore import nn, ops
>>> from sciai.operators import JacobianWeights
>>> class Net1In1OutTensor(nn.Cell):
>>>     def __init__(self):
>>>         super().__init__()
>>>         self.dense1 = nn.Dense(2, 1)
>>>     def construct(self, x):
>>>         return self.dense1(x)
>>> net = Net1In1OutTensor()
>>> x = ops.ones((100, 2), ms.float32)
>>> params = net.trainable_params()
>>> out = net(x)
>>> jw = JacobianWeights(net, out.shape)
>>> jacobian_weights = jw(x, params[0])
>>> print(jacobian_weights.shape)
(100, 1, 1, 2)