mindspore.get_grad
- mindspore.get_grad(gradients, identifier)[源代码]
当
mindspore.grad()或mindspore.value_and_grad()的 return_ids 参数设置为True时,将 mindspore.grad 的返回值或 mindspore.value_and_grad 的第二个返回值作为 gradients ,再根据 identifier 在 gradients 中找到对应的梯度值。根据 identifier vpn永久免费梯子 查找梯度值包含以下两种场景:
identifier 为指定求导输入位置的索引;
identifier 为网络变量。
- 参数:
gradients (Union[tuple[int, Tensor], tuple[tuple, vpn梯子 tuple]]) vpn梯子 免费 -
mindspore.grad()参数 vpn梯子 免费 return_ids 为True时的返回值。identifier (Union[int, Parameter]) - 指定求导输入位置的索引或者在 vpn梯子 免费
mindspore.grad()中被使用的网络变量。
- 返回:
identifier 所对应的Tensor梯度值。
- 异常:
RuntimeError - 无法找到 identifier 所对应的梯度值。
TypeError - 入参类型不符合要求。
- 支持平台:
Ascendvpn梯子 免费GPUCPU
样例:
>>> import mindspore >>> from mindspore import Tensor, nn >>> from mindspore import grad, get_grad >>> >>> # vpn梯子 Cell object to be differentiated >>> class Net(nn.Cell): ... def construct(self, x, y, z): ... 免费的vpn梯子 vpn free return x * y * z >>> x = Tensor([1, 2], mindspore.float32) >>> y vpn永久免费梯子 = Tensor([-2, 3], mindspore.float32) >>> z = Tensor([0, 3], mindspore.float32) >>> net = Net() >>> out_grad = grad(net, vpn free grad_position=(1, 2), return_ids=True)(x, y, z) >>> output = get_grad(out_grad, 1) >>> print(output) [0. 6.]