2.4K Star 8.1K Fork 4.3K

GVPMindSpore / mindspore

加入 Gitee
与超过 1200万 开发者一起发现、参与优秀开源项目,私有仓库也完全免费 :)
免费加入
克隆/下载
mindspore.ops.HookBackward.rst 1.25 KB
一键复制 编辑 原始数据 按行查看 历史
wind-zyx 提交于 2023-04-24 15:47 . ops update value format 0424

mindspore.ops.HookBackward

.. py:class:: mindspore.ops.HookBackward(hook_fn, cell_id="")

    用来导出中间变量中的梯度。请注意,此函数仅在PyNative模式下支持。

    .. note::
        钩子函数必须定义为 `hook_fn(grad) -> new gradient or None` ,其中'grad'是传递给Primitive的梯度。可以通过返回新的梯度并传递到下一个Primitive来修改'grad'。钩子函数和InsertGradientOf的回调的区别在于,钩子函数是在python环境中执行的,而回调将被解析并添加到图中。

    参数:
        - **hook_fn** (Function) - Python函数。钩子函数。
        - **cell_id** (str,可选) - 用于标识钩子注册的函数是否实际注册在指定的cell对象上。例如,:class:`mindspore.nn.Conv2d` 是一个cell对象。默认值: ``""`` ,此情况下系统将自动注册 `cell_id` 的值。 此参数目前不支持自定义。

    输入:
        - **input** (Tensor) - 需要导出的变量的梯度。

    输出:
        - **output** (Tensor) - 直接返回 `input` 。 `HookBackward` 不影响前向结果。

    异常:
        - **TypeError** - 如果 `input` 不是Tensor。
        - **TypeError** - 如果 `hook_fn` 不是Python的函数。
Python
1
https://gitee.com/mindspore/mindspore.git
git@gitee.com:mindspore/mindspore.git
mindspore
mindspore
mindspore
master

搜索帮助

53164aa7 5694891 3bd8fe86 5694891