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)