2.3K Star 8.1K Fork 4.3K

GVPMindSpore / mindspore

加入 Gitee
与超过 1200万 开发者一起发现、参与优秀开源项目,私有仓库也完全免费 :)
免费加入
克隆/下载
mindspore.jacrev.rst 1.39 KB
一键复制 编辑 原始数据 按行查看 历史
宦晓玲 提交于 2024-04-18 09:38 . modify the error links

mindspore.jacrev

.. py:function:: mindspore.jacrev(fn, grad_position=0, has_aux=False)

    通过反向模式计算给定网络的Jacobian矩阵,对应 `反向模式自动微分 <https://www.mindspore.cn/docs/zh-CN/master/design/programming_paradigm.html#反向自动微分>`_。当网络输出数量远小于输入数量时,使用反向模式求Jacobian矩阵比前向模式性能更好。

    参数:
        - **fn** (Union[Cell, Function]) - 待求导的函数或网络。以Tensor为入参,返回Tensor或Tensor数组。
        - **grad_position** (Union[int, tuple[int]], 可选) - 指定求导输入位置的索引。若为int类型,表示对单个输入求导;若为tuple类型,表示对tuple内索引的位置求导,其中索引从0开始。默认值: ``0`` 。
        - **has_aux** (bool, 可选) - 若 `has_aux` 为 ``True`` ,只有 `fn` 的第一个输出参与 `fn` 的求导,其他输出将直接返回。此时, `fn` 的输出数量必须超过一个。默认值: ``False`` 。

    返回:
        Function,用于计算给定函数的Jacobian矩阵。例如 `out1, out2 = fn(*args)` ,若 `has_aux` 为 ``True`` ,梯度函数将返回 `(Jacobian, out2)` 形式的结果,其中 `out2` 不参与求导,若为 ``False`` ,将直接返回 `Jacobian` 。

    异常:
        - **TypeError** - `grad_position` 或 `has_aux` 类型不符合要求。
Python
1
https://gitee.com/mindspore/mindspore.git
git@gitee.com:mindspore/mindspore.git
mindspore
mindspore
mindspore
master

搜索帮助