概述
ms_function的作用是在PyNative模式下提升执行性能。在MindSpore框架中,PyNative模式(即动态图模式)下,用户可以使用完整的Python语法,更加简单方便地使用MindSpore进行网络调优。与此同时,PyNative模式也会导致一部分性能的损失。
ms_function支持在PyNative模式下,让被ms_function修饰的程序以静态图的方式来运行。ms_function会将修饰的程序通过静态编译的方式来生成可执行图,整体下发执行,从而提升该修饰部分的执行性能。
本文档主要介绍ms_function的使用方法和工作原理,以便您可以更有效地使用ms_function功能。
修饰独立函数
使用ms_function装饰器时,可以对独立定义的函数进行修饰。
代码如下:
import numpy as np
import mindspore.ops as ops
from mindspore import context, Tensor, dtype, ms_function
@ms_function
def add_func(x, y):
return ops.add(x, y)
context.set_context(mode=context.PYNATIVE_MODE)
x = Tensor(np.ones([3, 3], dtype=np.float32))
y = Tensor(np.ones([3, 3], dtype=np.float32))
out = add_func(x, y)
print(out)
代码输出结果如下: