mindspore.ops.Morph ============================== .. image:: https://mindspore-website.obs.cn-north-4.myhuaweicloud.com/website-images/master/resource/_static/logo_source.svg :target: https://gitee.com/mindspore/mindspore/blob/master/docs/api/api_python/ops/mindspore.ops.Morph.rst :alt: 查看源文件 .. py:class:: mindspore.ops.Morph(fn, infer_shape, infer_dtype) `Morph` 算子用于对用户自定义函数 `fn` 进行封装,允许其被当做自定义算子使用。 `Morph` 算子的主要适用于静态图的分布式自动并行场景,通过在自定义函数 `fn` 中使用集合通信算子,实现自定义的并行计算逻辑,尤其适用于 `fn` 内存在动态Shape的场景。 `Morph` 算子作用于输入时,实际上是其内封装的自定义函数 `fn` 作用于输入。 `Morph` 算子与 :func:`mindspore.ops.Custom` 的主要区别在于,前者会在自动微分前被展开替换为用户自定义 `fn`,故无需实现反向函数。 .. note:: - 本算子只支持图模式。 - `fn` 必须满足图模式语法约束。 - 用户无需实现自定义反向函数。 - 用户自定义函数不支持 `vararg`、`kwarg`、`kwonlyargs` 和自由变量。 参数: - **fn** (Function) - MindSpore Function,用户自定义函数。 - **infer_shape** (Function) - Mindspore Function,用户自定义 `infer_shape` 函数。 - **infer_dtype** (Function) - Mindspore Function,用户自定义 `infer_dtype` 函数。 输入: 用户自定义 `fn` 的输入。 输出: 用户自定义 `fn` 的输出。 异常: - **RuntimeError** - 如果算子在非图模式下被使用。