当前位置:   article > 正文

【昇思25天学习打卡营打卡指南-第九天】使用静态图加速

【昇思25天学习打卡营打卡指南-第九天】使用静态图加速

使用静态图加速

背景介绍

AI编译框架分为两种运行模式,分别是动态图模式以及静态图模式。MindSpore默认情况下是以动态图模式运行,但也支持手工切换为静态图模式。两种运行模式的详细介绍如下:

动态图模式

动态图的特点是计算图的构建和计算同时发生(Define by run),其符合Python的解释执行方式,在计算图中定义一个Tensor时,其值就已经被计算且确定,因此在调试模型时较为方便,能够实时得到中间结果的值,但由于所有节点都需要被保存,导致难以对整个计算图进行优化。

在MindSpore中,动态图模式又被称为PyNative模式。由于动态图的解释执行特性,在脚本开发和网络流程调试过程中,推荐使用动态图模式进行调试。
如需要手动控制框架采用PyNative模式,可以通过以下代码进行网络构建:

import numpy as np
import mindspore as ms
from mindspore import nn, Tensor
ms.set_context(mode=ms.PYNATIVE_MODE)  # 使用set_context进行动态图模式的配置

class Network(nn.Cell):
    def __init__(self):
        super().__init__()
        self.flatten = nn.Flatten()
        self.dense_relu_sequential = nn.SequentialCell(
            nn.Dense(28*28, 512),
            nn.ReLU(),
            nn.Dense(512, 512),
            nn.ReLU(),
            nn.Dense(512, 10)
        )

    def construct(self, x):
        x = self.flatten(x)
        logits = self.dense_relu_sequential(x)
        return logits

model = Network()
input = Tensor(np.ones([64, 1, 28, 28]).astype(np.float32))
output = model(input)
print(output)
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
  • 21
  • 22
  • 23
  • 24
  • 25
  • 26

运行结果

[[-0.03566104 -0.1120851   0.07692513 -0.01651601 -0.09375141  0.01726679
  -0.11652644  0.00121147  0.08274855 -0.05799475]
 [-0.03566104 -0.1120851   0.07692513 -0.01651601 -0.09375141  0.01726679
  -0.11652644  0.00121147  0.08274855 -0.05799475]
 [-0.03566104 -0.1120851   0.07692513 -0.01651601 -0.09375141  0.01726679
  -0.11652644  0.00121147  0.08274855 -0.05799475]
 [-0.03566104 -0.1120851   0.07692513 -0.01651601 -0.09375141  0.01726679
  -0.11652644  0.00121147  0.08274855 -0.05799475]
 [-0.03566104 -0.1120851   0.07692513 -0.01651601 -0.09375141  0.01726679
  -0.11652644  0.00121147  0.08274855 -0.05799475]
 [-0.03566104 -0.1120851   0.07692513 -0.01651601 -0.09375141  0.01726679
  -0.11652644  0.00121147  0.08274855 -0.05799475]
 [-0.03566104 -0.1120851   0.07692513 -0.01651601 -0.09375141  0.01726679
  -0.11652644  0.00121147  0.08274855 -0.05799475]
 [-0.03566104 -0.1120851   0.07692513 -0.01651601 -0.09375141  0.01726679
  -0.11652644  0.00121147  0.08274855 -0.05799475]
 [-0.03566104 -0.1120851   0.07692513 -0.01651601 -0.09375141  0.01726679
  -0.11652644  0.00121147  0.08274855 -0.05799475]
 [-0.03566104 -0.1120851   0.07692513 -0.01651601 -0.09375141  0.01726679
  -0.11652644  0.00121147  0.08274855 -0.05799475]
 [-0.03566104 -0.1120851   0.07692513 -0.01651601 -0.09375141  0.01726679
  -0.11652644  0.00121147  0.08274855 -0.05799475]
 [-0.03566104 -0.1120851   0.07692513 -0.01651601 -0.09375141  0.01726679
  -0.11652644  0.00121147  0.08274855 -0.05799475]
 [-0.03566104 -0.1120851   0.07692513 -0.01651601 -0.09375141  0.01726679
  -0.11652644  0.00121147  0.08274855 -0.05799475]
 [-0.03566104 -0.1120851   0.07692513 -0.01651601 -0.09375141  0.01726679
  -0.11652644  0.00121147  0.08274855 -0.05799475]
 [-0.03566104 -0.1120851   0.07692513 -0.01651601 -0.09375141  0.01726679
  -0.11652644  0.00121147  0.08274855 -0.05799475]
 [-0.03566104 -0.1120851   0.07692513 -0.01651601 -0.09375141  0.01726679
  -0.11652644  0.00121147  0.08274855 -0.05799475]
 [-0.03566104 -0.1120851   0.07692513 -0.01651601 -0.09375141  0.01726679
  -0.11652644  0.00121147  0.08274855 -0.05799475]
 [-0.03566104 -0.1120851   0.07692513 -0.01651601 -0.09375141  0.01726679
  -0.11652644  0.00121147  0.08274855 -0.05799475]
 [-0.03566104 -0.1120851   0.07692513 -0.01651601 -0.09375141  0.01726679
  -0.11652644  0.00121147  0.08274855 -0.05799475]
 [-0.03566104 -0.1120851   0.07692513 -0.01651601 -0.09375141  0.01726679
  -0.11652644  0.00121147  0.08274855 -0.05799475]
 [-0.03566104 -0.1120851   0.07692513 -0.01651601 -0.09375141  0.01726679
  -0.11652644  0.00121147  0.08274855 -0.05799475]
 [-0.03566104 -0.1120851   0.07692513 -0.01651601 -0.09375141  0.01726679
  -0.11652644  0.00121147  0.08274855 -0.05799475]
 [-0.03566104 -0.1120851   0.07692513 -0.01651601 -0.09375141  0.01726679
  -0.11652644  0.00121147  0.08274855 -0.05799475]
 [-0.03566104 -0.1120851   0.07692513 -0.01651601 -0.09375141  0.01726679
  -0.11652644  0.00121147  0.08274855 -0.05799475]
 [-0.03566104 -0.1120851   0.07692513 -0.01651601 -0.09375141  0.01726679
  -0.11652644  0.00121147  0.08274855 -0.05799475]
 [-0.03566104 -0.1120851   0.07692513 -0.01651601 -0.09375141  0.01726679
  -0.11652644  0.00121147  0.08274855 -0.05799475]
 [-0.03566104 -0.1120851   0.07692513 -0.01651601 -0.09375141  0.01726679
  -0.11652644  0.00121147  0.08274855 -0.05799475]
 [-0.03566104 -0.1120851   0.07692513 -0.01651601 -0.09375141  0.01726679
  -0.11652644  0.00121147  0.08274855 -0.05799475]
 [-0.03566104 -0.1120851   0.07692513 -0.01651601 -0.09375141  0.01726679
  -0.11652644  0.00121147  0.08274855 -0.05799475]
 [-0.03566104 -0.1120851   0.07692513 -0.01651601 -0.09375141  0.01726679
  -0.11652644  0.00121147  0.08274855 -0.05799475]
 [-0.03566104 -0.1120851   0.07692513 -0.01651601 -0.09375141  0.01726679
  -0.11652644  0.00121147  0.08274855 -0.05799475]
 [-0.03566104 -0.1120851   0.07692513 -0.01651601 -0.09375141  0.01726679
  -0.11652644  0.00121147  0.08274855 -0.05799475]
 [-0.03566104 -0.1120851   0.07692513 -0.01651601 -0.09375141  0.01726679
  -0.11652644  0.00121147  0.08274855 -0.05799475]
 [-0.03566104 -0.1120851   0.07692513 -0.01651601 -0.09375141  0.01726679
  -0.11652644  0.00121147  0.08274855 -0.05799475]
 [-0.03566104 -0.1120851   0.07692513 -0.01651601 -0.09375141  0.01726679
  -0.11652644  0.00121147  0.08274855 -0.05799475]
 [-0.03566104 -0.1120851   0.07692513 -0.01651601 -0.09375141  0.01726679
  -0.11652644  0.00121147  0.08274855 -0.05799475]
 [-0.03566104 -0.1120851   0.07692513 -0.01651601 -0.09375141  0.01726679
  -0.11652644  0.00121147  0.08274855 -0.05799475]
 [-0.03566104 -0.1120851   0.07692513 -0.01651601 -0.09375141  0.01726679
  -0.11652644  0.00121147  0.08274855 -0.05799475]
 [-0.03566104 -0.1120851   0.07692513 -0.01651601 -0.09375141  0.01726679
  -0.11652644  0.00121147  0.08274855 -0.05799475]
 [-0.03566104 -0.1120851   0.07692513 -0.01651601 -0.09375141  0.01726679
  -0.11652644  0.00121147  0.08274855 -0.05799475]
 [-0.03566104 -0.1120851   0.07692513 -0.01651601 -0.09375141  0.01726679
  -0.11652644  0.00121147  0.08274855 -0.05799475]
 [-0.03566104 -0.1120851   0.07692513 -0.01651601 -0.09375141  0.01726679
  -0.11652644  0.00121147  0.08274855 -0.05799475]
 [-0.03566104 -0.1120851   0.07692513 -0.01651601 -0.09375141  0.01726679
  -0.11652644  0.00121147  0.08274855 -0.05799475]
 [-0.03566104 -0.1120851   0.07692513 -0.01651601 -0.09375141  0.01726679
  -0.11652644  0.00121147  0.08274855 -0.05799475]
 [-0.03566104 -0.1120851   0.07692513 -0.01651601 -0.09375141  0.01726679
  -0.11652644  0.00121147  0.08274855 -0.05799475]
 [-0.03566104 -0.1120851   0.07692513 -0.01651601 -0.09375141  0.01726679
  -0.11652644  0.00121147  0.08274855 -0.05799475]
 [-0.03566104 -0.1120851   0.07692513 -0.01651601 -0.09375141  0.01726679
  -0.11652644  0.00121147  0.08274855 -0.05799475]
 [-0.03566104 -0.1120851   0.07692513 -0.01651601 -0.09375141  0.01726679
  -0.11652644  0.00121147  0.08274855 -0.05799475]
 [-0.03566104 -0.1120851   0.07692513 -0.01651601 -0.09375141  0.01726679
  -0.11652644  0.00121147  0.08274855 -0.05799475]
 [-0.03566104 -0.1120851   0.07692513 -0.01651601 -0.09375141  0.01726679
  -0.11652644  0.00121147  0.08274855 -0.05799475]
 [-0.03566104 -0.1120851   0.07692513 -0.01651601 -0.09375141  0.01726679
  -0.11652644  0.00121147  0.08274855 -0.05799475]
 [-0.03566104 -0.1120851   0.07692513 -0.01651601 -0.09375141  0.01726679
  -0.11652644  0.00121147  0.08274855 -0.05799475]
 [-0.03566104 -0.1120851   0.07692513 -0.01651601 -0.09375141  0.01726679
  -0.11652644  0.00121147  0.08274855 -0.05799475]
 [-0.03566104 -0.1120851   0.07692513 -0.01651601 -0.09375141  0.01726679
  -0.11652644  0.00121147  0.08274855 -0.05799475]
 [-0.03566104 -0.1120851   0.07692513 -0.01651601 -0.09375141  0.01726679
  -0.11652644  0.00121147  0.08274855 -0.05799475]
 [-0.03566104 -0.1120851   0.07692513 -0.01651601 -0.09375141  0.01726679
  -0.11652644  0.00121147  0.08274855 -0.05799475]
 [-0.03566104 -0.1120851   0.07692513 -0.01651601 -0.09375141  0.01726679
  -0.11652644  0.00121147  0.08274855 -0.05799475]
 [-0.03566104 -0.1120851   0.07692513 -0.01651601 -0.09375141  0.01726679
  -0.11652644  0.00121147  0.08274855 -0.05799475]
 [-0.03566104 -0.1120851   0.07692513 -0.01651601 -0.09375141  0.01726679
  -0.11652644  0.00121147  0.08274855 -0.05799475]
 [-0.03566104 -0.1120851   0.07692513 -0.01651601 -0.09375141  0.01726679
  -0.11652644  0.00121147  0.08274855 -0.05799475]
 [-0.03566104 -0.1120851   0.07692513 -0.01651601 -0.09375141  0.01726679
  -0.11652644  0.00121147  0.08274855 -0.05799475]
 [-0.03566104 -0.1120851   0.07692513 -0.01651601 -0.09375141  0.01726679
  -0.11652644  0.00121147  0.08274855 -0.05799475]
 [-0.03566104 -0.1120851   0.07692513 -0.01651601 -0.09375141  0.01726679
  -0.11652644  0.00121147  0.08274855 -0.05799475]
 [-0.03566104 -0.1120851   0.07692513 -0.01651601 -0.09375141  0.01726679
  -0.11652644  0.00121147  0.08274855 -0.05799475]]
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
  • 21
  • 22
  • 23
  • 24
  • 25
  • 26
  • 27
  • 28
  • 29
  • 30
  • 31
  • 32
  • 33
  • 34
  • 35
  • 36
  • 37
  • 38
  • 39
  • 40
  • 41
  • 42
  • 43
  • 44
  • 45
  • 46
  • 47
  • 48
  • 49
  • 50
  • 51
  • 52
  • 53
  • 54
  • 55
  • 56
  • 57
  • 58
  • 59
  • 60
  • 61
  • 62
  • 63
  • 64
  • 65
  • 66
  • 67
  • 68
  • 69
  • 70
  • 71
  • 72
  • 73
  • 74
  • 75
  • 76
  • 77
  • 78
  • 79
  • 80
  • 81
  • 82
  • 83
  • 84
  • 85
  • 86
  • 87
  • 88
  • 89
  • 90
  • 91
  • 92
  • 93
  • 94
  • 95
  • 96
  • 97
  • 98
  • 99
  • 100
  • 101
  • 102
  • 103
  • 104
  • 105
  • 106
  • 107
  • 108
  • 109
  • 110
  • 111
  • 112
  • 113
  • 114
  • 115
  • 116
  • 117
  • 118
  • 119
  • 120
  • 121
  • 122
  • 123
  • 124
  • 125
  • 126
  • 127
  • 128

静态图模式

相较于动态图而言,静态图的特点是将计算图的构建和实际计算分开(Define and run)。有关静态图模式的运行原理,可以参考静态图语法支持

在MindSpore中,静态图模式又被称为Graph模式,在Graph模式下,基于图优化、计算图整图下沉等技术,编译器可以针对图进行全局的优化,获得较好的性能,因此比较适合网络固定且需要高性能的场景。

如需要手动控制框架采用静态图模式,可以通过以下代码进行网络构建:

import numpy as np
import mindspore as ms
from mindspore import nn, Tensor
ms.set_context(mode=ms.GRAPH_MODE)  # 使用set_context进行运行静态图模式的配置

class Network(nn.Cell):
    def __init__(self):
        super().__init__()
        self.flatten = nn.Flatten()
        self.dense_relu_sequential = nn.SequentialCell(
            nn.Dense(28*28, 512),
            nn.ReLU(),
            nn.Dense(512, 512),
            nn.ReLU(),
            nn.Dense(512, 10)
        )

    def construct(self, x):
        x = self.flatten(x)
        logits = self.dense_relu_sequential(x)
        return logits

model = Network()
input = Tensor(np.ones([64, 1, 28, 28]).astype(np.float32))
output = model(input)
print(output)
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
  • 21
  • 22
  • 23
  • 24
  • 25
  • 26

运行结果

[[ 0.00483203  0.04191997  0.13207492  0.02343503  0.06897408  0.07376932
   0.17980443 -0.00792498 -0.0318887   0.05697848]
 [ 0.00483203  0.04191997  0.13207492  0.02343503  0.06897408  0.07376932
   0.17980443 -0.00792498 -0.0318887   0.05697848]
 [ 0.00483203  0.04191997  0.13207492  0.02343503  0.06897408  0.07376932
   0.17980443 -0.00792498 -0.0318887   0.05697848]
 [ 0.00483203  0.04191997  0.13207492  0.02343503  0.06897408  0.07376932
   0.17980443 -0.00792498 -0.0318887   0.05697848]
 [ 0.00483203  0.04191997  0.13207492  0.02343503  0.06897408  0.07376932
   0.17980443 -0.00792498 -0.0318887   0.05697848]
 [ 0.00483203  0.04191997  0.13207492  0.02343503  0.06897408  0.07376932
   0.17980443 -0.00792498 -0.0318887   0.05697848]
 [ 0.00483203  0.04191997  0.13207492  0.02343503  0.06897408  0.07376932
   0.17980443 -0.00792498 -0.0318887   0.05697848]
 [ 0.00483203  0.04191997  0.13207492  0.02343503  0.06897408  0.07376932
   0.17980443 -0.00792498 -0.0318887   0.05697848]
 [ 0.00483203  0.04191997  0.13207492  0.02343503  0.06897408  0.07376932
   0.17980443 -0.00792498 -0.0318887   0.05697848]
 [ 0.00483203  0.04191997  0.13207492  0.02343503  0.06897408  0.07376932
   0.17980443 -0.00792498 -0.0318887   0.05697848]
 [ 0.00483203  0.04191997  0.13207492  0.02343503  0.06897408  0.07376932
   0.17980443 -0.00792498 -0.0318887   0.05697848]
 [ 0.00483203  0.04191997  0.13207492  0.02343503  0.06897408  0.07376932
   0.17980443 -0.00792498 -0.0318887   0.05697848]
 [ 0.00483203  0.04191997  0.13207492  0.02343503  0.06897408  0.07376932
   0.17980443 -0.00792498 -0.0318887   0.05697848]
 [ 0.00483203  0.04191997  0.13207492  0.02343503  0.06897408  0.07376932
   0.17980443 -0.00792498 -0.0318887   0.05697848]
 [ 0.00483203  0.04191997  0.13207492  0.02343503  0.06897408  0.07376932
   0.17980443 -0.00792498 -0.0318887   0.05697848]
 [ 0.00483203  0.04191997  0.13207492  0.02343503  0.06897408  0.07376932
   0.17980443 -0.00792498 -0.0318887   0.05697848]
 [ 0.00483203  0.04191997  0.13207492  0.02343503  0.06897408  0.07376932
   0.17980443 -0.00792498 -0.0318887   0.05697848]
 [ 0.00483203  0.04191997  0.13207492  0.02343503  0.06897408  0.07376932
   0.17980443 -0.00792498 -0.0318887   0.05697848]
 [ 0.00483203  0.04191997  0.13207492  0.02343503  0.06897408  0.07376932
   0.17980443 -0.00792498 -0.0318887   0.05697848]
 [ 0.00483203  0.04191997  0.13207492  0.02343503  0.06897408  0.07376932
   0.17980443 -0.00792498 -0.0318887   0.05697848]
 [ 0.00483203  0.04191997  0.13207492  0.02343503  0.06897408  0.07376932
   0.17980443 -0.00792498 -0.0318887   0.05697848]
 [ 0.00483203  0.04191997  0.13207492  0.02343503  0.06897408  0.07376932
   0.17980443 -0.00792498 -0.0318887   0.05697848]
 [ 0.00483203  0.04191997  0.13207492  0.02343503  0.06897408  0.07376932
   0.17980443 -0.00792498 -0.0318887   0.05697848]
 [ 0.00483203  0.04191997  0.13207492  0.02343503  0.06897408  0.07376932
   0.17980443 -0.00792498 -0.0318887   0.05697848]
 [ 0.00483203  0.04191997  0.13207492  0.02343503  0.06897408  0.07376932
   0.17980443 -0.00792498 -0.0318887   0.05697848]
 [ 0.00483203  0.04191997  0.13207492  0.02343503  0.06897408  0.07376932
   0.17980443 -0.00792498 -0.0318887   0.05697848]
 [ 0.00483203  0.04191997  0.13207492  0.02343503  0.06897408  0.07376932
   0.17980443 -0.00792498 -0.0318887   0.05697848]
 [ 0.00483203  0.04191997  0.13207492  0.02343503  0.06897408  0.07376932
   0.17980443 -0.00792498 -0.0318887   0.05697848]
 [ 0.00483203  0.04191997  0.13207492  0.02343503  0.06897408  0.07376932
   0.17980443 -0.00792498 -0.0318887   0.05697848]
 [ 0.00483203  0.04191997  0.13207492  0.02343503  0.06897408  0.07376932
   0.17980443 -0.00792498 -0.0318887   0.05697848]
 [ 0.00483203  0.04191997  0.13207492  0.02343503  0.06897408  0.07376932
   0.17980443 -0.00792498 -0.0318887   0.05697848]
 [ 0.00483203  0.04191997  0.13207492  0.02343503  0.06897408  0.07376932
   0.17980443 -0.00792498 -0.0318887   0.05697848]
 [ 0.00483203  0.04191997  0.13207492  0.02343503  0.06897408  0.07376932
   0.17980443 -0.00792498 -0.0318887   0.05697848]
 [ 0.00483203  0.04191997  0.13207492  0.02343503  0.06897408  0.07376932
   0.17980443 -0.00792498 -0.0318887   0.05697848]
 [ 0.00483203  0.04191997  0.13207492  0.02343503  0.06897408  0.07376932
   0.17980443 -0.00792498 -0.0318887   0.05697848]
 [ 0.00483203  0.04191997  0.13207492  0.02343503  0.06897408  0.07376932
   0.17980443 -0.00792498 -0.0318887   0.05697848]
 [ 0.00483203  0.04191997  0.13207492  0.02343503  0.06897408  0.07376932
   0.17980443 -0.00792498 -0.0318887   0.05697848]
 [ 0.00483203  0.04191997  0.13207492  0.02343503  0.06897408  0.07376932
   0.17980443 -0.00792498 -0.0318887   0.05697848]
 [ 0.00483203  0.04191997  0.13207492  0.02343503  0.06897408  0.07376932
   0.17980443 -0.00792498 -0.0318887   0.05697848]
 [ 0.00483203  0.04191997  0.13207492  0.02343503  0.06897408  0.07376932
   0.17980443 -0.00792498 -0.0318887   0.05697848]
 [ 0.00483203  0.04191997  0.13207492  0.02343503  0.06897408  0.07376932
   0.17980443 -0.00792498 -0.0318887   0.05697848]
 [ 0.00483203  0.04191997  0.13207492  0.02343503  0.06897408  0.07376932
   0.17980443 -0.00792498 -0.0318887   0.05697848]
 [ 0.00483203  0.04191997  0.13207492  0.02343503  0.06897408  0.07376932
   0.17980443 -0.00792498 -0.0318887   0.05697848]
 [ 0.00483203  0.04191997  0.13207492  0.02343503  0.06897408  0.07376932
   0.17980443 -0.00792498 -0.0318887   0.05697848]
 [ 0.00483203  0.04191997  0.13207492  0.02343503  0.06897408  0.07376932
   0.17980443 -0.00792498 -0.0318887   0.05697848]
 [ 0.00483203  0.04191997  0.13207492  0.02343503  0.06897408  0.07376932
   0.17980443 -0.00792498 -0.0318887   0.05697848]
 [ 0.00483203  0.04191997  0.13207492  0.02343503  0.06897408  0.07376932
   0.17980443 -0.00792498 -0.0318887   0.05697848]
 [ 0.00483203  0.04191997  0.13207492  0.02343503  0.06897408  0.07376932
   0.17980443 -0.00792498 -0.0318887   0.05697848]
 [ 0.00483203  0.04191997  0.13207492  0.02343503  0.06897408  0.07376932
   0.17980443 -0.00792498 -0.0318887   0.05697848]
 [ 0.00483203  0.04191997  0.13207492  0.02343503  0.06897408  0.07376932
   0.17980443 -0.00792498 -0.0318887   0.05697848]
 [ 0.00483203  0.04191997  0.13207492  0.02343503  0.06897408  0.07376932
   0.17980443 -0.00792498 -0.0318887   0.05697848]
 [ 0.00483203  0.04191997  0.13207492  0.02343503  0.06897408  0.07376932
   0.17980443 -0.00792498 -0.0318887   0.05697848]
 [ 0.00483203  0.04191997  0.13207492  0.02343503  0.06897408  0.07376932
   0.17980443 -0.00792498 -0.0318887   0.05697848]
 [ 0.00483203  0.04191997  0.13207492  0.02343503  0.06897408  0.07376932
   0.17980443 -0.00792498 -0.0318887   0.05697848]
 [ 0.00483203  0.04191997  0.13207492  0.02343503  0.06897408  0.07376932
   0.17980443 -0.00792498 -0.0318887   0.05697848]
 [ 0.00483203  0.04191997  0.13207492  0.02343503  0.06897408  0.07376932
   0.17980443 -0.00792498 -0.0318887   0.05697848]
 [ 0.00483203  0.04191997  0.13207492  0.02343503  0.06897408  0.07376932
   0.17980443 -0.00792498 -0.0318887   0.05697848]
 [ 0.00483203  0.04191997  0.13207492  0.02343503  0.06897408  0.07376932
   0.17980443 -0.00792498 -0.0318887   0.05697848]
 [ 0.00483203  0.04191997  0.13207492  0.02343503  0.06897408  0.07376932
   0.17980443 -0.00792498 -0.0318887   0.05697848]
 [ 0.00483203  0.04191997  0.13207492  0.02343503  0.06897408  0.07376932
   0.17980443 -0.00792498 -0.0318887   0.05697848]
 [ 0.00483203  0.04191997  0.13207492  0.02343503  0.06897408  0.07376932
   0.17980443 -0.00792498 -0.0318887   0.05697848]
 [ 0.00483203  0.04191997  0.13207492  0.02343503  0.06897408  0.07376932
   0.17980443 -0.00792498 -0.0318887   0.05697848]
 [ 0.00483203  0.04191997  0.13207492  0.02343503  0.06897408  0.07376932
   0.17980443 -0.00792498 -0.0318887   0.05697848]
 [ 0.00483203  0.04191997  0.13207492  0.02343503  0.06897408  0.07376932
   0.17980443 -0.00792498 -0.0318887   0.05697848]]
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
  • 21
  • 22
  • 23
  • 24
  • 25
  • 26
  • 27
  • 28
  • 29
  • 30
  • 31
  • 32
  • 33
  • 34
  • 35
  • 36
  • 37
  • 38
  • 39
  • 40
  • 41
  • 42
  • 43
  • 44
  • 45
  • 46
  • 47
  • 48
  • 49
  • 50
  • 51
  • 52
  • 53
  • 54
  • 55
  • 56
  • 57
  • 58
  • 59
  • 60
  • 61
  • 62
  • 63
  • 64
  • 65
  • 66
  • 67
  • 68
  • 69
  • 70
  • 71
  • 72
  • 73
  • 74
  • 75
  • 76
  • 77
  • 78
  • 79
  • 80
  • 81
  • 82
  • 83
  • 84
  • 85
  • 86
  • 87
  • 88
  • 89
  • 90
  • 91
  • 92
  • 93
  • 94
  • 95
  • 96
  • 97
  • 98
  • 99
  • 100
  • 101
  • 102
  • 103
  • 104
  • 105
  • 106
  • 107
  • 108
  • 109
  • 110
  • 111
  • 112
  • 113
  • 114
  • 115
  • 116
  • 117
  • 118
  • 119
  • 120
  • 121
  • 122
  • 123
  • 124
  • 125
  • 126
  • 127
  • 128

静态图模式的使用场景

MindSpore编译器重点面向Tensor数据的计算以及其微分处理。因此使用MindSpore API以及基于Tensor对象的操作更适合使用静态图编译优化。其他操作虽然可以部分入图编译,但实际优化作用有限。另外,静态图模式先编译后执行的模式导致其存在编译耗时。因此,如果函数无需反复执行,那么使用静态图加速也可能没有价值。

有关使用静态图来进行网络编译的示例,请参考网络构建

静态图模式开启方式

通常情况下,由于动态图的灵活性,我们会选择使用PyNative模式来进行自由的神经网络构建,以实现模型的创新和优化。但是当需要进行性能加速时,我们需要对神经网络部分或整体进行加速。MindSpore提供了两种切换为图模式的方式,分别是基于装饰器的开启方式以及基于全局context的开启方式。

基于装饰器的开启方式

MindSpore提供了jit装饰器,可以通过修饰Python函数或者Python类的成员函数使其被编译成计算图,通过图优化等技术提高运行速度。此时我们可以简单的对想要进行性能优化的模块进行图编译加速,而模型其他部分,仍旧使用解释执行方式,不丢失动态图的灵活性。无论全局context是设置成静态图模式还是动态图模式,被jit修饰的部分始终会以静态图模式进行运行。

在需要对Tensor的某些运算进行编译加速时,可以在其定义的函数上使用jit修饰器,在调用该函数时,该模块自动被编译为静态图。需要注意的是,jit装饰器只能用来修饰函数,无法对类进行修饰。jit的使用示例如下:

import numpy as np
import mindspore as ms
from mindspore import nn, Tensor

class Network(nn.Cell):
    def __init__(self):
        super().__init__()
        self.flatten = nn.Flatten()
        self.dense_relu_sequential = nn.SequentialCell(
            nn.Dense(28*28, 512),
            nn.ReLU(),
            nn.Dense(512, 512),
            nn.ReLU(),
            nn.Dense(512, 10)
        )

    def construct(self, x):
        x = self.flatten(x)
        logits = self.dense_relu_sequential(x)
        return logits

input = Tensor(np.ones([64, 1, 28, 28]).astype(np.float32))

@ms.jit  # 使用ms.jit装饰器,使被装饰的函数以静态图模式运行
def run(x):
    model = Network()
    return model(x)

output = run(input)
print(output)
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
  • 21
  • 22
  • 23
  • 24
  • 25
  • 26
  • 27
  • 28
  • 29
  • 30

运行结果:

[[ 0.1252139   0.04581339  0.0738193   0.05624225 -0.16909821  0.06049951
  -0.23870054 -0.16575325 -0.0028802   0.07817087]
 [ 0.1252139   0.04581339  0.0738193   0.05624225 -0.16909821  0.06049951
  -0.23870054 -0.16575325 -0.0028802   0.07817087]
 [ 0.1252139   0.04581339  0.0738193   0.05624225 -0.16909821  0.06049951
  -0.23870054 -0.16575325 -0.0028802   0.07817087]
 [ 0.1252139   0.04581339  0.0738193   0.05624225 -0.16909821  0.06049951
  -0.23870054 -0.16575325 -0.0028802   0.07817087]
 [ 0.1252139   0.04581339  0.0738193   0.05624225 -0.16909821  0.06049951
  -0.23870054 -0.16575325 -0.0028802   0.07817087]
 [ 0.1252139   0.04581339  0.0738193   0.05624225 -0.16909821  0.06049951
  -0.23870054 -0.16575325 -0.0028802   0.07817087]
 [ 0.1252139   0.04581339  0.0738193   0.05624225 -0.16909821  0.06049951
  -0.23870054 -0.16575325 -0.0028802   0.07817087]
 [ 0.1252139   0.04581339  0.0738193   0.05624225 -0.16909821  0.06049951
  -0.23870054 -0.16575325 -0.0028802   0.07817087]
 [ 0.1252139   0.04581339  0.0738193   0.05624225 -0.16909821  0.06049951
  -0.23870054 -0.16575325 -0.0028802   0.07817087]
 [ 0.1252139   0.04581339  0.0738193   0.05624225 -0.16909821  0.06049951
  -0.23870054 -0.16575325 -0.0028802   0.07817087]
 [ 0.1252139   0.04581339  0.0738193   0.05624225 -0.16909821  0.06049951
  -0.23870054 -0.16575325 -0.0028802   0.07817087]
 [ 0.1252139   0.04581339  0.0738193   0.05624225 -0.16909821  0.06049951
  -0.23870054 -0.16575325 -0.0028802   0.07817087]
 [ 0.1252139   0.04581339  0.0738193   0.05624225 -0.16909821  0.06049951
  -0.23870054 -0.16575325 -0.0028802   0.07817087]
 [ 0.1252139   0.04581339  0.0738193   0.05624225 -0.16909821  0.06049951
  -0.23870054 -0.16575325 -0.0028802   0.07817087]
 [ 0.1252139   0.04581339  0.0738193   0.05624225 -0.16909821  0.06049951
  -0.23870054 -0.16575325 -0.0028802   0.07817087]
 [ 0.1252139   0.04581339  0.0738193   0.05624225 -0.16909821  0.06049951
  -0.23870054 -0.16575325 -0.0028802   0.07817087]
 [ 0.1252139   0.04581339  0.0738193   0.05624225 -0.16909821  0.06049951
  -0.23870054 -0.16575325 -0.0028802   0.07817087]
 [ 0.1252139   0.04581339  0.0738193   0.05624225 -0.16909821  0.06049951
  -0.23870054 -0.16575325 -0.0028802   0.07817087]
 [ 0.1252139   0.04581339  0.0738193   0.05624225 -0.16909821  0.06049951
  -0.23870054 -0.16575325 -0.0028802   0.07817087]
 [ 0.1252139   0.04581339  0.0738193   0.05624225 -0.16909821  0.06049951
  -0.23870054 -0.16575325 -0.0028802   0.07817087]
 [ 0.1252139   0.04581339  0.0738193   0.05624225 -0.16909821  0.06049951
  -0.23870054 -0.16575325 -0.0028802   0.07817087]
 [ 0.1252139   0.04581339  0.0738193   0.05624225 -0.16909821  0.06049951
  -0.23870054 -0.16575325 -0.0028802   0.07817087]
 [ 0.1252139   0.04581339  0.0738193   0.05624225 -0.16909821  0.06049951
  -0.23870054 -0.16575325 -0.0028802   0.07817087]
 [ 0.1252139   0.04581339  0.0738193   0.05624225 -0.16909821  0.06049951
  -0.23870054 -0.16575325 -0.0028802   0.07817087]
 [ 0.1252139   0.04581339  0.0738193   0.05624225 -0.16909821  0.06049951
  -0.23870054 -0.16575325 -0.0028802   0.07817087]
 [ 0.1252139   0.04581339  0.0738193   0.05624225 -0.16909821  0.06049951
  -0.23870054 -0.16575325 -0.0028802   0.07817087]
 [ 0.1252139   0.04581339  0.0738193   0.05624225 -0.16909821  0.06049951
  -0.23870054 -0.16575325 -0.0028802   0.07817087]
 [ 0.1252139   0.04581339  0.0738193   0.05624225 -0.16909821  0.06049951
  -0.23870054 -0.16575325 -0.0028802   0.07817087]
 [ 0.1252139   0.04581339  0.0738193   0.05624225 -0.16909821  0.06049951
  -0.23870054 -0.16575325 -0.0028802   0.07817087]
 [ 0.1252139   0.04581339  0.0738193   0.05624225 -0.16909821  0.06049951
  -0.23870054 -0.16575325 -0.0028802   0.07817087]
 [ 0.1252139   0.04581339  0.0738193   0.05624225 -0.16909821  0.06049951
  -0.23870054 -0.16575325 -0.0028802   0.07817087]
 [ 0.1252139   0.04581339  0.0738193   0.05624225 -0.16909821  0.06049951
  -0.23870054 -0.16575325 -0.0028802   0.07817087]
 [ 0.1252139   0.04581339  0.0738193   0.05624225 -0.16909821  0.06049951
  -0.23870054 -0.16575325 -0.0028802   0.07817087]
 [ 0.1252139   0.04581339  0.0738193   0.05624225 -0.16909821  0.06049951
  -0.23870054 -0.16575325 -0.0028802   0.07817087]
 [ 0.1252139   0.04581339  0.0738193   0.05624225 -0.16909821  0.06049951
  -0.23870054 -0.16575325 -0.0028802   0.07817087]
 [ 0.1252139   0.04581339  0.0738193   0.05624225 -0.16909821  0.06049951
  -0.23870054 -0.16575325 -0.0028802   0.07817087]
 [ 0.1252139   0.04581339  0.0738193   0.05624225 -0.16909821  0.06049951
  -0.23870054 -0.16575325 -0.0028802   0.07817087]
 [ 0.1252139   0.04581339  0.0738193   0.05624225 -0.16909821  0.06049951
  -0.23870054 -0.16575325 -0.0028802   0.07817087]
 [ 0.1252139   0.04581339  0.0738193   0.05624225 -0.16909821  0.06049951
  -0.23870054 -0.16575325 -0.0028802   0.07817087]
 [ 0.1252139   0.04581339  0.0738193   0.05624225 -0.16909821  0.06049951
  -0.23870054 -0.16575325 -0.0028802   0.07817087]
 [ 0.1252139   0.04581339  0.0738193   0.05624225 -0.16909821  0.06049951
  -0.23870054 -0.16575325 -0.0028802   0.07817087]
 [ 0.1252139   0.04581339  0.0738193   0.05624225 -0.16909821  0.06049951
  -0.23870054 -0.16575325 -0.0028802   0.07817087]
 [ 0.1252139   0.04581339  0.0738193   0.05624225 -0.16909821  0.06049951
  -0.23870054 -0.16575325 -0.0028802   0.07817087]
 [ 0.1252139   0.04581339  0.0738193   0.05624225 -0.16909821  0.06049951
  -0.23870054 -0.16575325 -0.0028802   0.07817087]
 [ 0.1252139   0.04581339  0.0738193   0.05624225 -0.16909821  0.06049951
  -0.23870054 -0.16575325 -0.0028802   0.07817087]
 [ 0.1252139   0.04581339  0.0738193   0.05624225 -0.16909821  0.06049951
  -0.23870054 -0.16575325 -0.0028802   0.07817087]
 [ 0.1252139   0.04581339  0.0738193   0.05624225 -0.16909821  0.06049951
  -0.23870054 -0.16575325 -0.0028802   0.07817087]
 [ 0.1252139   0.04581339  0.0738193   0.05624225 -0.16909821  0.06049951
  -0.23870054 -0.16575325 -0.0028802   0.07817087]
 [ 0.1252139   0.04581339  0.0738193   0.05624225 -0.16909821  0.06049951
  -0.23870054 -0.16575325 -0.0028802   0.07817087]
 [ 0.1252139   0.04581339  0.0738193   0.05624225 -0.16909821  0.06049951
  -0.23870054 -0.16575325 -0.0028802   0.07817087]
 [ 0.1252139   0.04581339  0.0738193   0.05624225 -0.16909821  0.06049951
  -0.23870054 -0.16575325 -0.0028802   0.07817087]
 [ 0.1252139   0.04581339  0.0738193   0.05624225 -0.16909821  0.06049951
  -0.23870054 -0.16575325 -0.0028802   0.07817087]
 [ 0.1252139   0.04581339  0.0738193   0.05624225 -0.16909821  0.06049951
  -0.23870054 -0.16575325 -0.0028802   0.07817087]
 [ 0.1252139   0.04581339  0.0738193   0.05624225 -0.16909821  0.06049951
  -0.23870054 -0.16575325 -0.0028802   0.07817087]
 [ 0.1252139   0.04581339  0.0738193   0.05624225 -0.16909821  0.06049951
  -0.23870054 -0.16575325 -0.0028802   0.07817087]
 [ 0.1252139   0.04581339  0.0738193   0.05624225 -0.16909821  0.06049951
  -0.23870054 -0.16575325 -0.0028802   0.07817087]
 [ 0.1252139   0.04581339  0.0738193   0.05624225 -0.16909821  0.06049951
  -0.23870054 -0.16575325 -0.0028802   0.07817087]
 [ 0.1252139   0.04581339  0.0738193   0.05624225 -0.16909821  0.06049951
  -0.23870054 -0.16575325 -0.0028802   0.07817087]
 [ 0.1252139   0.04581339  0.0738193   0.05624225 -0.16909821  0.06049951
  -0.23870054 -0.16575325 -0.0028802   0.07817087]
 [ 0.1252139   0.04581339  0.0738193   0.05624225 -0.16909821  0.06049951
  -0.23870054 -0.16575325 -0.0028802   0.07817087]
 [ 0.1252139   0.04581339  0.0738193   0.05624225 -0.16909821  0.06049951
  -0.23870054 -0.16575325 -0.0028802   0.07817087]
 [ 0.1252139   0.04581339  0.0738193   0.05624225 -0.16909821  0.06049951
  -0.23870054 -0.16575325 -0.0028802   0.07817087]
 [ 0.1252139   0.04581339  0.0738193   0.05624225 -0.16909821  0.06049951
  -0.23870054 -0.16575325 -0.0028802   0.07817087]
 [ 0.1252139   0.04581339  0.0738193   0.05624225 -0.16909821  0.06049951
  -0.23870054 -0.16575325 -0.0028802   0.07817087]]
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
  • 21
  • 22
  • 23
  • 24
  • 25
  • 26
  • 27
  • 28
  • 29
  • 30
  • 31
  • 32
  • 33
  • 34
  • 35
  • 36
  • 37
  • 38
  • 39
  • 40
  • 41
  • 42
  • 43
  • 44
  • 45
  • 46
  • 47
  • 48
  • 49
  • 50
  • 51
  • 52
  • 53
  • 54
  • 55
  • 56
  • 57
  • 58
  • 59
  • 60
  • 61
  • 62
  • 63
  • 64
  • 65
  • 66
  • 67
  • 68
  • 69
  • 70
  • 71
  • 72
  • 73
  • 74
  • 75
  • 76
  • 77
  • 78
  • 79
  • 80
  • 81
  • 82
  • 83
  • 84
  • 85
  • 86
  • 87
  • 88
  • 89
  • 90
  • 91
  • 92
  • 93
  • 94
  • 95
  • 96
  • 97
  • 98
  • 99
  • 100
  • 101
  • 102
  • 103
  • 104
  • 105
  • 106
  • 107
  • 108
  • 109
  • 110
  • 111
  • 112
  • 113
  • 114
  • 115
  • 116
  • 117
  • 118
  • 119
  • 120
  • 121
  • 122
  • 123
  • 124
  • 125
  • 126
  • 127
  • 128

除使用修饰器外,也可使用函数变换方式调用jit方法,示例如下:

import numpy as np
import mindspore as ms
from mindspore import nn, Tensor

class Network(nn.Cell):
    def __init__(self):
        super().__init__()
        self.flatten = nn.Flatten()
        self.dense_relu_sequential = nn.SequentialCell(
            nn.Dense(28*28, 512),
            nn.ReLU(),
            nn.Dense(512, 512),
            nn.ReLU(),
            nn.Dense(512, 10)
        )

    def construct(self, x):
        x = self.flatten(x)
        logits = self.dense_relu_sequential(x)
        return logits

input = Tensor(np.ones([64, 1, 28, 28]).astype(np.float32))

def run(x):
    model = Network()
    return model(x)

run_with_jit = ms.jit(run)  # 通过调用jit将函数转换为以静态图方式执行
output = run(input)
print(output)
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
  • 21
  • 22
  • 23
  • 24
  • 25
  • 26
  • 27
  • 28
  • 29
  • 30

运行结果

[[-0.10622732 -0.09094816 -0.11432757 -0.13232405 -0.03260136 -0.12981798
  -0.03416808  0.14421274  0.03140517  0.22961427]
 [-0.10622732 -0.09094816 -0.11432757 -0.13232405 -0.03260136 -0.12981798
  -0.03416808  0.14421274  0.03140517  0.22961427]
 [-0.10622732 -0.09094816 -0.11432757 -0.13232405 -0.03260136 -0.12981798
  -0.03416808  0.14421274  0.03140517  0.22961427]
 [-0.10622732 -0.09094816 -0.11432757 -0.13232405 -0.03260136 -0.12981798
  -0.03416808  0.14421274  0.03140517  0.22961427]
 [-0.10622732 -0.09094816 -0.11432757 -0.13232405 -0.03260136 -0.12981798
  -0.03416808  0.14421274  0.03140517  0.22961427]
 [-0.10622732 -0.09094816 -0.11432757 -0.13232405 -0.03260136 -0.12981798
  -0.03416808  0.14421274  0.03140517  0.22961427]
 [-0.10622732 -0.09094816 -0.11432757 -0.13232405 -0.03260136 -0.12981798
  -0.03416808  0.14421274  0.03140517  0.22961427]
 [-0.10622732 -0.09094816 -0.11432757 -0.13232405 -0.03260136 -0.12981798
  -0.03416808  0.14421274  0.03140517  0.22961427]
 [-0.10622732 -0.09094816 -0.11432757 -0.13232405 -0.03260136 -0.12981798
  -0.03416808  0.14421274  0.03140517  0.22961427]
 [-0.10622732 -0.09094816 -0.11432757 -0.13232405 -0.03260136 -0.12981798
  -0.03416808  0.14421274  0.03140517  0.22961427]
 [-0.10622732 -0.09094816 -0.11432757 -0.13232405 -0.03260136 -0.12981798
  -0.03416808  0.14421274  0.03140517  0.22961427]
 [-0.10622732 -0.09094816 -0.11432757 -0.13232405 -0.03260136 -0.12981798
  -0.03416808  0.14421274  0.03140517  0.22961427]
 [-0.10622732 -0.09094816 -0.11432757 -0.13232405 -0.03260136 -0.12981798
  -0.03416808  0.14421274  0.03140517  0.22961427]
 [-0.10622732 -0.09094816 -0.11432757 -0.13232405 -0.03260136 -0.12981798
  -0.03416808  0.14421274  0.03140517  0.22961427]
 [-0.10622732 -0.09094816 -0.11432757 -0.13232405 -0.03260136 -0.12981798
  -0.03416808  0.14421274  0.03140517  0.22961427]
 [-0.10622732 -0.09094816 -0.11432757 -0.13232405 -0.03260136 -0.12981798
  -0.03416808  0.14421274  0.03140517  0.22961427]
 [-0.10622732 -0.09094816 -0.11432757 -0.13232405 -0.03260136 -0.12981798
  -0.03416808  0.14421274  0.03140517  0.22961427]
 [-0.10622732 -0.09094816 -0.11432757 -0.13232405 -0.03260136 -0.12981798
  -0.03416808  0.14421274  0.03140517  0.22961427]
 [-0.10622732 -0.09094816 -0.11432757 -0.13232405 -0.03260136 -0.12981798
  -0.03416808  0.14421274  0.03140517  0.22961427]
 [-0.10622732 -0.09094816 -0.11432757 -0.13232405 -0.03260136 -0.12981798
  -0.03416808  0.14421274  0.03140517  0.22961427]
 [-0.10622732 -0.09094816 -0.11432757 -0.13232405 -0.03260136 -0.12981798
  -0.03416808  0.14421274  0.03140517  0.22961427]
 [-0.10622732 -0.09094816 -0.11432757 -0.13232405 -0.03260136 -0.12981798
  -0.03416808  0.14421274  0.03140517  0.22961427]
 [-0.10622732 -0.09094816 -0.11432757 -0.13232405 -0.03260136 -0.12981798
  -0.03416808  0.14421274  0.03140517  0.22961427]
 [-0.10622732 -0.09094816 -0.11432757 -0.13232405 -0.03260136 -0.12981798
  -0.03416808  0.14421274  0.03140517  0.22961427]
 [-0.10622732 -0.09094816 -0.11432757 -0.13232405 -0.03260136 -0.12981798
  -0.03416808  0.14421274  0.03140517  0.22961427]
 [-0.10622732 -0.09094816 -0.11432757 -0.13232405 -0.03260136 -0.12981798
  -0.03416808  0.14421274  0.03140517  0.22961427]
 [-0.10622732 -0.09094816 -0.11432757 -0.13232405 -0.03260136 -0.12981798
  -0.03416808  0.14421274  0.03140517  0.22961427]
 [-0.10622732 -0.09094816 -0.11432757 -0.13232405 -0.03260136 -0.12981798
  -0.03416808  0.14421274  0.03140517  0.22961427]
 [-0.10622732 -0.09094816 -0.11432757 -0.13232405 -0.03260136 -0.12981798
  -0.03416808  0.14421274  0.03140517  0.22961427]
 [-0.10622732 -0.09094816 -0.11432757 -0.13232405 -0.03260136 -0.12981798
  -0.03416808  0.14421274  0.03140517  0.22961427]
 [-0.10622732 -0.09094816 -0.11432757 -0.13232405 -0.03260136 -0.12981798
  -0.03416808  0.14421274  0.03140517  0.22961427]
 [-0.10622732 -0.09094816 -0.11432757 -0.13232405 -0.03260136 -0.12981798
  -0.03416808  0.14421274  0.03140517  0.22961427]
 [-0.10622732 -0.09094816 -0.11432757 -0.13232405 -0.03260136 -0.12981798
  -0.03416808  0.14421274  0.03140517  0.22961427]
 [-0.10622732 -0.09094816 -0.11432757 -0.13232405 -0.03260136 -0.12981798
  -0.03416808  0.14421274  0.03140517  0.22961427]
 [-0.10622732 -0.09094816 -0.11432757 -0.13232405 -0.03260136 -0.12981798
  -0.03416808  0.14421274  0.03140517  0.22961427]
 [-0.10622732 -0.09094816 -0.11432757 -0.13232405 -0.03260136 -0.12981798
  -0.03416808  0.14421274  0.03140517  0.22961427]
 [-0.10622732 -0.09094816 -0.11432757 -0.13232405 -0.03260136 -0.12981798
  -0.03416808  0.14421274  0.03140517  0.22961427]
 [-0.10622732 -0.09094816 -0.11432757 -0.13232405 -0.03260136 -0.12981798
  -0.03416808  0.14421274  0.03140517  0.22961427]
 [-0.10622732 -0.09094816 -0.11432757 -0.13232405 -0.03260136 -0.12981798
  -0.03416808  0.14421274  0.03140517  0.22961427]
 [-0.10622732 -0.09094816 -0.11432757 -0.13232405 -0.03260136 -0.12981798
  -0.03416808  0.14421274  0.03140517  0.22961427]
 [-0.10622732 -0.09094816 -0.11432757 -0.13232405 -0.03260136 -0.12981798
  -0.03416808  0.14421274  0.03140517  0.22961427]
 [-0.10622732 -0.09094816 -0.11432757 -0.13232405 -0.03260136 -0.12981798
  -0.03416808  0.14421274  0.03140517  0.22961427]
 [-0.10622732 -0.09094816 -0.11432757 -0.13232405 -0.03260136 -0.12981798
  -0.03416808  0.14421274  0.03140517  0.22961427]
 [-0.10622732 -0.09094816 -0.11432757 -0.13232405 -0.03260136 -0.12981798
  -0.03416808  0.14421274  0.03140517  0.22961427]
 [-0.10622732 -0.09094816 -0.11432757 -0.13232405 -0.03260136 -0.12981798
  -0.03416808  0.14421274  0.03140517  0.22961427]
 [-0.10622732 -0.09094816 -0.11432757 -0.13232405 -0.03260136 -0.12981798
  -0.03416808  0.14421274  0.03140517  0.22961427]
 [-0.10622732 -0.09094816 -0.11432757 -0.13232405 -0.03260136 -0.12981798
  -0.03416808  0.14421274  0.03140517  0.22961427]
 [-0.10622732 -0.09094816 -0.11432757 -0.13232405 -0.03260136 -0.12981798
  -0.03416808  0.14421274  0.03140517  0.22961427]
 [-0.10622732 -0.09094816 -0.11432757 -0.13232405 -0.03260136 -0.12981798
  -0.03416808  0.14421274  0.03140517  0.22961427]
 [-0.10622732 -0.09094816 -0.11432757 -0.13232405 -0.03260136 -0.12981798
  -0.03416808  0.14421274  0.03140517  0.22961427]
 [-0.10622732 -0.09094816 -0.11432757 -0.13232405 -0.03260136 -0.12981798
  -0.03416808  0.14421274  0.03140517  0.22961427]
 [-0.10622732 -0.09094816 -0.11432757 -0.13232405 -0.03260136 -0.12981798
  -0.03416808  0.14421274  0.03140517  0.22961427]
 [-0.10622732 -0.09094816 -0.11432757 -0.13232405 -0.03260136 -0.12981798
  -0.03416808  0.14421274  0.03140517  0.22961427]
 [-0.10622732 -0.09094816 -0.11432757 -0.13232405 -0.03260136 -0.12981798
  -0.03416808  0.14421274  0.03140517  0.22961427]
 [-0.10622732 -0.09094816 -0.11432757 -0.13232405 -0.03260136 -0.12981798
  -0.03416808  0.14421274  0.03140517  0.22961427]
 [-0.10622732 -0.09094816 -0.11432757 -0.13232405 -0.03260136 -0.12981798
  -0.03416808  0.14421274  0.03140517  0.22961427]
 [-0.10622732 -0.09094816 -0.11432757 -0.13232405 -0.03260136 -0.12981798
  -0.03416808  0.14421274  0.03140517  0.22961427]
 [-0.10622732 -0.09094816 -0.11432757 -0.13232405 -0.03260136 -0.12981798
  -0.03416808  0.14421274  0.03140517  0.22961427]
 [-0.10622732 -0.09094816 -0.11432757 -0.13232405 -0.03260136 -0.12981798
  -0.03416808  0.14421274  0.03140517  0.22961427]
 [-0.10622732 -0.09094816 -0.11432757 -0.13232405 -0.03260136 -0.12981798
  -0.03416808  0.14421274  0.03140517  0.22961427]
 [-0.10622732 -0.09094816 -0.11432757 -0.13232405 -0.03260136 -0.12981798
  -0.03416808  0.14421274  0.03140517  0.22961427]
 [-0.10622732 -0.09094816 -0.11432757 -0.13232405 -0.03260136 -0.12981798
  -0.03416808  0.14421274  0.03140517  0.22961427]
 [-0.10622732 -0.09094816 -0.11432757 -0.13232405 -0.03260136 -0.12981798
  -0.03416808  0.14421274  0.03140517  0.22961427]
 [-0.10622732 -0.09094816 -0.11432757 -0.13232405 -0.03260136 -0.12981798
  -0.03416808  0.14421274  0.03140517  0.22961427]]
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
  • 21
  • 22
  • 23
  • 24
  • 25
  • 26
  • 27
  • 28
  • 29
  • 30
  • 31
  • 32
  • 33
  • 34
  • 35
  • 36
  • 37
  • 38
  • 39
  • 40
  • 41
  • 42
  • 43
  • 44
  • 45
  • 46
  • 47
  • 48
  • 49
  • 50
  • 51
  • 52
  • 53
  • 54
  • 55
  • 56
  • 57
  • 58
  • 59
  • 60
  • 61
  • 62
  • 63
  • 64
  • 65
  • 66
  • 67
  • 68
  • 69
  • 70
  • 71
  • 72
  • 73
  • 74
  • 75
  • 76
  • 77
  • 78
  • 79
  • 80
  • 81
  • 82
  • 83
  • 84
  • 85
  • 86
  • 87
  • 88
  • 89
  • 90
  • 91
  • 92
  • 93
  • 94
  • 95
  • 96
  • 97
  • 98
  • 99
  • 100
  • 101
  • 102
  • 103
  • 104
  • 105
  • 106
  • 107
  • 108
  • 109
  • 110
  • 111
  • 112
  • 113
  • 114
  • 115
  • 116
  • 117
  • 118
  • 119
  • 120
  • 121
  • 122
  • 123
  • 124
  • 125
  • 126
  • 127
  • 128

当我们需要对神经网络的某部分进行加速时,可以直接在construct方法上使用jit修饰器,在调用实例化对象时,该模块自动被编译为静态图。示例如下:

import numpy as np
import mindspore as ms
from mindspore import nn, Tensor

class Network(nn.Cell):
    def __init__(self):
        super().__init__()
        self.flatten = nn.Flatten()
        self.dense_relu_sequential = nn.SequentialCell(
            nn.Dense(28*28, 512),
            nn.ReLU(),
            nn.Dense(512, 512),
            nn.ReLU(),
            nn.Dense(512, 10)
        )

    @ms.jit  # 使用ms.jit装饰器,使被装饰的函数以静态图模式运行
    def construct(self, x):
        x = self.flatten(x)
        logits = self.dense_relu_sequential(x)
        return logits

input = Tensor(np.ones([64, 1, 28, 28]).astype(np.float32))
model = Network()
output = model(input)
print(output)
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
  • 21
  • 22
  • 23
  • 24
  • 25
  • 26

运行结果

[[ 0.17366177 -0.11818913 -0.07235572  0.16754873 -0.22531462 -0.12066163
   0.07827738 -0.02126503 -0.00560445  0.05143096]
 [ 0.17366177 -0.11818913 -0.07235572  0.16754873 -0.22531462 -0.12066163
   0.07827738 -0.02126503 -0.00560445  0.05143096]
 [ 0.17366177 -0.11818913 -0.07235572  0.16754873 -0.22531462 -0.12066163
   0.07827738 -0.02126503 -0.00560445  0.05143096]
 [ 0.17366177 -0.11818913 -0.07235572  0.16754873 -0.22531462 -0.12066163
   0.07827738 -0.02126503 -0.00560445  0.05143096]
 [ 0.17366177 -0.11818913 -0.07235572  0.16754873 -0.22531462 -0.12066163
   0.07827738 -0.02126503 -0.00560445  0.05143096]
 [ 0.17366177 -0.11818913 -0.07235572  0.16754873 -0.22531462 -0.12066163
   0.07827738 -0.02126503 -0.00560445  0.05143096]
 [ 0.17366177 -0.11818913 -0.07235572  0.16754873 -0.22531462 -0.12066163
   0.07827738 -0.02126503 -0.00560445  0.05143096]
 [ 0.17366177 -0.11818913 -0.07235572  0.16754873 -0.22531462 -0.12066163
   0.07827738 -0.02126503 -0.00560445  0.05143096]
 [ 0.17366177 -0.11818913 -0.07235572  0.16754873 -0.22531462 -0.12066163
   0.07827738 -0.02126503 -0.00560445  0.05143096]
 [ 0.17366177 -0.11818913 -0.07235572  0.16754873 -0.22531462 -0.12066163
   0.07827738 -0.02126503 -0.00560445  0.05143096]
 [ 0.17366177 -0.11818913 -0.07235572  0.16754873 -0.22531462 -0.12066163
   0.07827738 -0.02126503 -0.00560445  0.05143096]
 [ 0.17366177 -0.11818913 -0.07235572  0.16754873 -0.22531462 -0.12066163
   0.07827738 -0.02126503 -0.00560445  0.05143096]
 [ 0.17366177 -0.11818913 -0.07235572  0.16754873 -0.22531462 -0.12066163
   0.07827738 -0.02126503 -0.00560445  0.05143096]
 [ 0.17366177 -0.11818913 -0.07235572  0.16754873 -0.22531462 -0.12066163
   0.07827738 -0.02126503 -0.00560445  0.05143096]
 [ 0.17366177 -0.11818913 -0.07235572  0.16754873 -0.22531462 -0.12066163
   0.07827738 -0.02126503 -0.00560445  0.05143096]
 [ 0.17366177 -0.11818913 -0.07235572  0.16754873 -0.22531462 -0.12066163
   0.07827738 -0.02126503 -0.00560445  0.05143096]
 [ 0.17366177 -0.11818913 -0.07235572  0.16754873 -0.22531462 -0.12066163
   0.07827738 -0.02126503 -0.00560445  0.05143096]
 [ 0.17366177 -0.11818913 -0.07235572  0.16754873 -0.22531462 -0.12066163
   0.07827738 -0.02126503 -0.00560445  0.05143096]
 [ 0.17366177 -0.11818913 -0.07235572  0.16754873 -0.22531462 -0.12066163
   0.07827738 -0.02126503 -0.00560445  0.05143096]
 [ 0.17366177 -0.11818913 -0.07235572  0.16754873 -0.22531462 -0.12066163
   0.07827738 -0.02126503 -0.00560445  0.05143096]
 [ 0.17366177 -0.11818913 -0.07235572  0.16754873 -0.22531462 -0.12066163
   0.07827738 -0.02126503 -0.00560445  0.05143096]
 [ 0.17366177 -0.11818913 -0.07235572  0.16754873 -0.22531462 -0.12066163
   0.07827738 -0.02126503 -0.00560445  0.05143096]
 [ 0.17366177 -0.11818913 -0.07235572  0.16754873 -0.22531462 -0.12066163
   0.07827738 -0.02126503 -0.00560445  0.05143096]
 [ 0.17366177 -0.11818913 -0.07235572  0.16754873 -0.22531462 -0.12066163
   0.07827738 -0.02126503 -0.00560445  0.05143096]
 [ 0.17366177 -0.11818913 -0.07235572  0.16754873 -0.22531462 -0.12066163
   0.07827738 -0.02126503 -0.00560445  0.05143096]
 [ 0.17366177 -0.11818913 -0.07235572  0.16754873 -0.22531462 -0.12066163
   0.07827738 -0.02126503 -0.00560445  0.05143096]
 [ 0.17366177 -0.11818913 -0.07235572  0.16754873 -0.22531462 -0.12066163
   0.07827738 -0.02126503 -0.00560445  0.05143096]
 [ 0.17366177 -0.11818913 -0.07235572  0.16754873 -0.22531462 -0.12066163
   0.07827738 -0.02126503 -0.00560445  0.05143096]
 [ 0.17366177 -0.11818913 -0.07235572  0.16754873 -0.22531462 -0.12066163
   0.07827738 -0.02126503 -0.00560445  0.05143096]
 [ 0.17366177 -0.11818913 -0.07235572  0.16754873 -0.22531462 -0.12066163
   0.07827738 -0.02126503 -0.00560445  0.05143096]
 [ 0.17366177 -0.11818913 -0.07235572  0.16754873 -0.22531462 -0.12066163
   0.07827738 -0.02126503 -0.00560445  0.05143096]
 [ 0.17366177 -0.11818913 -0.07235572  0.16754873 -0.22531462 -0.12066163
   0.07827738 -0.02126503 -0.00560445  0.05143096]
 [ 0.17366177 -0.11818913 -0.07235572  0.16754873 -0.22531462 -0.12066163
   0.07827738 -0.02126503 -0.00560445  0.05143096]
 [ 0.17366177 -0.11818913 -0.07235572  0.16754873 -0.22531462 -0.12066163
   0.07827738 -0.02126503 -0.00560445  0.05143096]
 [ 0.17366177 -0.11818913 -0.07235572  0.16754873 -0.22531462 -0.12066163
   0.07827738 -0.02126503 -0.00560445  0.05143096]
 [ 0.17366177 -0.11818913 -0.07235572  0.16754873 -0.22531462 -0.12066163
   0.07827738 -0.02126503 -0.00560445  0.05143096]
 [ 0.17366177 -0.11818913 -0.07235572  0.16754873 -0.22531462 -0.12066163
   0.07827738 -0.02126503 -0.00560445  0.05143096]
 [ 0.17366177 -0.11818913 -0.07235572  0.16754873 -0.22531462 -0.12066163
   0.07827738 -0.02126503 -0.00560445  0.05143096]
 [ 0.17366177 -0.11818913 -0.07235572  0.16754873 -0.22531462 -0.12066163
   0.07827738 -0.02126503 -0.00560445  0.05143096]
 [ 0.17366177 -0.11818913 -0.07235572  0.16754873 -0.22531462 -0.12066163
   0.07827738 -0.02126503 -0.00560445  0.05143096]
 [ 0.17366177 -0.11818913 -0.07235572  0.16754873 -0.22531462 -0.12066163
   0.07827738 -0.02126503 -0.00560445  0.05143096]
 [ 0.17366177 -0.11818913 -0.07235572  0.16754873 -0.22531462 -0.12066163
   0.07827738 -0.02126503 -0.00560445  0.05143096]
 [ 0.17366177 -0.11818913 -0.07235572  0.16754873 -0.22531462 -0.12066163
   0.07827738 -0.02126503 -0.00560445  0.05143096]
 [ 0.17366177 -0.11818913 -0.07235572  0.16754873 -0.22531462 -0.12066163
   0.07827738 -0.02126503 -0.00560445  0.05143096]
 [ 0.17366177 -0.11818913 -0.07235572  0.16754873 -0.22531462 -0.12066163
   0.07827738 -0.02126503 -0.00560445  0.05143096]
 [ 0.17366177 -0.11818913 -0.07235572  0.16754873 -0.22531462 -0.12066163
   0.07827738 -0.02126503 -0.00560445  0.05143096]
 [ 0.17366177 -0.11818913 -0.07235572  0.16754873 -0.22531462 -0.12066163
   0.07827738 -0.02126503 -0.00560445  0.05143096]
 [ 0.17366177 -0.11818913 -0.07235572  0.16754873 -0.22531462 -0.12066163
   0.07827738 -0.02126503 -0.00560445  0.05143096]
 [ 0.17366177 -0.11818913 -0.07235572  0.16754873 -0.22531462 -0.12066163
   0.07827738 -0.02126503 -0.00560445  0.05143096]
 [ 0.17366177 -0.11818913 -0.07235572  0.16754873 -0.22531462 -0.12066163
   0.07827738 -0.02126503 -0.00560445  0.05143096]
 [ 0.17366177 -0.11818913 -0.07235572  0.16754873 -0.22531462 -0.12066163
   0.07827738 -0.02126503 -0.00560445  0.05143096]
 [ 0.17366177 -0.11818913 -0.07235572  0.16754873 -0.22531462 -0.12066163
   0.07827738 -0.02126503 -0.00560445  0.05143096]
 [ 0.17366177 -0.11818913 -0.07235572  0.16754873 -0.22531462 -0.12066163
   0.07827738 -0.02126503 -0.00560445  0.05143096]
 [ 0.17366177 -0.11818913 -0.07235572  0.16754873 -0.22531462 -0.12066163
   0.07827738 -0.02126503 -0.00560445  0.05143096]
 [ 0.17366177 -0.11818913 -0.07235572  0.16754873 -0.22531462 -0.12066163
   0.07827738 -0.02126503 -0.00560445  0.05143096]
 [ 0.17366177 -0.11818913 -0.07235572  0.16754873 -0.22531462 -0.12066163
   0.07827738 -0.02126503 -0.00560445  0.05143096]
 [ 0.17366177 -0.11818913 -0.07235572  0.16754873 -0.22531462 -0.12066163
   0.07827738 -0.02126503 -0.00560445  0.05143096]
 [ 0.17366177 -0.11818913 -0.07235572  0.16754873 -0.22531462 -0.12066163
   0.07827738 -0.02126503 -0.00560445  0.05143096]
 [ 0.17366177 -0.11818913 -0.07235572  0.16754873 -0.22531462 -0.12066163
   0.07827738 -0.02126503 -0.00560445  0.05143096]
 [ 0.17366177 -0.11818913 -0.07235572  0.16754873 -0.22531462 -0.12066163
   0.07827738 -0.02126503 -0.00560445  0.05143096]
 [ 0.17366177 -0.11818913 -0.07235572  0.16754873 -0.22531462 -0.12066163
   0.07827738 -0.02126503 -0.00560445  0.05143096]
 [ 0.17366177 -0.11818913 -0.07235572  0.16754873 -0.22531462 -0.12066163
   0.07827738 -0.02126503 -0.00560445  0.05143096]
 [ 0.17366177 -0.11818913 -0.07235572  0.16754873 -0.22531462 -0.12066163
   0.07827738 -0.02126503 -0.00560445  0.05143096]
 [ 0.17366177 -0.11818913 -0.07235572  0.16754873 -0.22531462 -0.12066163
   0.07827738 -0.02126503 -0.00560445  0.05143096]]
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
  • 21
  • 22
  • 23
  • 24
  • 25
  • 26
  • 27
  • 28
  • 29
  • 30
  • 31
  • 32
  • 33
  • 34
  • 35
  • 36
  • 37
  • 38
  • 39
  • 40
  • 41
  • 42
  • 43
  • 44
  • 45
  • 46
  • 47
  • 48
  • 49
  • 50
  • 51
  • 52
  • 53
  • 54
  • 55
  • 56
  • 57
  • 58
  • 59
  • 60
  • 61
  • 62
  • 63
  • 64
  • 65
  • 66
  • 67
  • 68
  • 69
  • 70
  • 71
  • 72
  • 73
  • 74
  • 75
  • 76
  • 77
  • 78
  • 79
  • 80
  • 81
  • 82
  • 83
  • 84
  • 85
  • 86
  • 87
  • 88
  • 89
  • 90
  • 91
  • 92
  • 93
  • 94
  • 95
  • 96
  • 97
  • 98
  • 99
  • 100
  • 101
  • 102
  • 103
  • 104
  • 105
  • 106
  • 107
  • 108
  • 109
  • 110
  • 111
  • 112
  • 113
  • 114
  • 115
  • 116
  • 117
  • 118
  • 119
  • 120
  • 121
  • 122
  • 123
  • 124
  • 125
  • 126
  • 127
  • 128

基于context的开启方式

context模式是一种全局的设置模式。代码示例如下:

import numpy as np
import mindspore as ms
from mindspore import nn, Tensor
ms.set_context(mode=ms.GRAPH_MODE)  # 使用set_context进行运行静态图模式的配置

class Network(nn.Cell):
    def __init__(self):
        super().__init__()
        self.flatten = nn.Flatten()
        self.dense_relu_sequential = nn.SequentialCell(
            nn.Dense(28*28, 512),
            nn.ReLU(),
            nn.Dense(512, 512),
            nn.ReLU(),
            nn.Dense(512, 10)
        )

    def construct(self, x):
        x = self.flatten(x)
        logits = self.dense_relu_sequential(x)
        return logits

model = Network()
input = Tensor(np.ones([64, 1, 28, 28]).astype(np.float32))
output = model(input)
print(output)
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
  • 21
  • 22
  • 23
  • 24
  • 25
  • 26

运行结果

[[ 0.08628678  0.00500585 -0.02423782  0.09541748 -0.0024861   0.10121399
  -0.07218124 -0.00624439 -0.10380664  0.0130345 ]
 [ 0.08628678  0.00500585 -0.02423782  0.09541748 -0.0024861   0.10121399
  -0.07218124 -0.00624439 -0.10380664  0.0130345 ]
 [ 0.08628678  0.00500585 -0.02423782  0.09541748 -0.0024861   0.10121399
  -0.07218124 -0.00624439 -0.10380664  0.0130345 ]
 [ 0.08628678  0.00500585 -0.02423782  0.09541748 -0.0024861   0.10121399
  -0.07218124 -0.00624439 -0.10380664  0.0130345 ]
 [ 0.08628678  0.00500585 -0.02423782  0.09541748 -0.0024861   0.10121399
  -0.07218124 -0.00624439 -0.10380664  0.0130345 ]
 [ 0.08628678  0.00500585 -0.02423782  0.09541748 -0.0024861   0.10121399
  -0.07218124 -0.00624439 -0.10380664  0.0130345 ]
 [ 0.08628678  0.00500585 -0.02423782  0.09541748 -0.0024861   0.10121399
  -0.07218124 -0.00624439 -0.10380664  0.0130345 ]
 [ 0.08628678  0.00500585 -0.02423782  0.09541748 -0.0024861   0.10121399
  -0.07218124 -0.00624439 -0.10380664  0.0130345 ]
 [ 0.08628678  0.00500585 -0.02423782  0.09541748 -0.0024861   0.10121399
  -0.07218124 -0.00624439 -0.10380664  0.0130345 ]
 [ 0.08628678  0.00500585 -0.02423782  0.09541748 -0.0024861   0.10121399
  -0.07218124 -0.00624439 -0.10380664  0.0130345 ]
 [ 0.08628678  0.00500585 -0.02423782  0.09541748 -0.0024861   0.10121399
  -0.07218124 -0.00624439 -0.10380664  0.0130345 ]
 [ 0.08628678  0.00500585 -0.02423782  0.09541748 -0.0024861   0.10121399
  -0.07218124 -0.00624439 -0.10380664  0.0130345 ]
 [ 0.08628678  0.00500585 -0.02423782  0.09541748 -0.0024861   0.10121399
  -0.07218124 -0.00624439 -0.10380664  0.0130345 ]
 [ 0.08628678  0.00500585 -0.02423782  0.09541748 -0.0024861   0.10121399
  -0.07218124 -0.00624439 -0.10380664  0.0130345 ]
 [ 0.08628678  0.00500585 -0.02423782  0.09541748 -0.0024861   0.10121399
  -0.07218124 -0.00624439 -0.10380664  0.0130345 ]
 [ 0.08628678  0.00500585 -0.02423782  0.09541748 -0.0024861   0.10121399
  -0.07218124 -0.00624439 -0.10380664  0.0130345 ]
 [ 0.08628678  0.00500585 -0.02423782  0.09541748 -0.0024861   0.10121399
  -0.07218124 -0.00624439 -0.10380664  0.0130345 ]
 [ 0.08628678  0.00500585 -0.02423782  0.09541748 -0.0024861   0.10121399
  -0.07218124 -0.00624439 -0.10380664  0.0130345 ]
 [ 0.08628678  0.00500585 -0.02423782  0.09541748 -0.0024861   0.10121399
  -0.07218124 -0.00624439 -0.10380664  0.0130345 ]
 [ 0.08628678  0.00500585 -0.02423782  0.09541748 -0.0024861   0.10121399
  -0.07218124 -0.00624439 -0.10380664  0.0130345 ]
 [ 0.08628678  0.00500585 -0.02423782  0.09541748 -0.0024861   0.10121399
  -0.07218124 -0.00624439 -0.10380664  0.0130345 ]
 [ 0.08628678  0.00500585 -0.02423782  0.09541748 -0.0024861   0.10121399
  -0.07218124 -0.00624439 -0.10380664  0.0130345 ]
 [ 0.08628678  0.00500585 -0.02423782  0.09541748 -0.0024861   0.10121399
  -0.07218124 -0.00624439 -0.10380664  0.0130345 ]
 [ 0.08628678  0.00500585 -0.02423782  0.09541748 -0.0024861   0.10121399
  -0.07218124 -0.00624439 -0.10380664  0.0130345 ]
 [ 0.08628678  0.00500585 -0.02423782  0.09541748 -0.0024861   0.10121399
  -0.07218124 -0.00624439 -0.10380664  0.0130345 ]
 [ 0.08628678  0.00500585 -0.02423782  0.09541748 -0.0024861   0.10121399
  -0.07218124 -0.00624439 -0.10380664  0.0130345 ]
 [ 0.08628678  0.00500585 -0.02423782  0.09541748 -0.0024861   0.10121399
  -0.07218124 -0.00624439 -0.10380664  0.0130345 ]
 [ 0.08628678  0.00500585 -0.02423782  0.09541748 -0.0024861   0.10121399
  -0.07218124 -0.00624439 -0.10380664  0.0130345 ]
 [ 0.08628678  0.00500585 -0.02423782  0.09541748 -0.0024861   0.10121399
  -0.07218124 -0.00624439 -0.10380664  0.0130345 ]
 [ 0.08628678  0.00500585 -0.02423782  0.09541748 -0.0024861   0.10121399
  -0.07218124 -0.00624439 -0.10380664  0.0130345 ]
 [ 0.08628678  0.00500585 -0.02423782  0.09541748 -0.0024861   0.10121399
  -0.07218124 -0.00624439 -0.10380664  0.0130345 ]
 [ 0.08628678  0.00500585 -0.02423782  0.09541748 -0.0024861   0.10121399
  -0.07218124 -0.00624439 -0.10380664  0.0130345 ]
 [ 0.08628678  0.00500585 -0.02423782  0.09541748 -0.0024861   0.10121399
  -0.07218124 -0.00624439 -0.10380664  0.0130345 ]
 [ 0.08628678  0.00500585 -0.02423782  0.09541748 -0.0024861   0.10121399
  -0.07218124 -0.00624439 -0.10380664  0.0130345 ]
 [ 0.08628678  0.00500585 -0.02423782  0.09541748 -0.0024861   0.10121399
  -0.07218124 -0.00624439 -0.10380664  0.0130345 ]
 [ 0.08628678  0.00500585 -0.02423782  0.09541748 -0.0024861   0.10121399
  -0.07218124 -0.00624439 -0.10380664  0.0130345 ]
 [ 0.08628678  0.00500585 -0.02423782  0.09541748 -0.0024861   0.10121399
  -0.07218124 -0.00624439 -0.10380664  0.0130345 ]
 [ 0.08628678  0.00500585 -0.02423782  0.09541748 -0.0024861   0.10121399
  -0.07218124 -0.00624439 -0.10380664  0.0130345 ]
 [ 0.08628678  0.00500585 -0.02423782  0.09541748 -0.0024861   0.10121399
  -0.07218124 -0.00624439 -0.10380664  0.0130345 ]
 [ 0.08628678  0.00500585 -0.02423782  0.09541748 -0.0024861   0.10121399
  -0.07218124 -0.00624439 -0.10380664  0.0130345 ]
 [ 0.08628678  0.00500585 -0.02423782  0.09541748 -0.0024861   0.10121399
  -0.07218124 -0.00624439 -0.10380664  0.0130345 ]
 [ 0.08628678  0.00500585 -0.02423782  0.09541748 -0.0024861   0.10121399
  -0.07218124 -0.00624439 -0.10380664  0.0130345 ]
 [ 0.08628678  0.00500585 -0.02423782  0.09541748 -0.0024861   0.10121399
  -0.07218124 -0.00624439 -0.10380664  0.0130345 ]
 [ 0.08628678  0.00500585 -0.02423782  0.09541748 -0.0024861   0.10121399
  -0.07218124 -0.00624439 -0.10380664  0.0130345 ]
 [ 0.08628678  0.00500585 -0.02423782  0.09541748 -0.0024861   0.10121399
  -0.07218124 -0.00624439 -0.10380664  0.0130345 ]
 [ 0.08628678  0.00500585 -0.02423782  0.09541748 -0.0024861   0.10121399
  -0.07218124 -0.00624439 -0.10380664  0.0130345 ]
 [ 0.08628678  0.00500585 -0.02423782  0.09541748 -0.0024861   0.10121399
  -0.07218124 -0.00624439 -0.10380664  0.0130345 ]
 [ 0.08628678  0.00500585 -0.02423782  0.09541748 -0.0024861   0.10121399
  -0.07218124 -0.00624439 -0.10380664  0.0130345 ]
 [ 0.08628678  0.00500585 -0.02423782  0.09541748 -0.0024861   0.10121399
  -0.07218124 -0.00624439 -0.10380664  0.0130345 ]
 [ 0.08628678  0.00500585 -0.02423782  0.09541748 -0.0024861   0.10121399
  -0.07218124 -0.00624439 -0.10380664  0.0130345 ]
 [ 0.08628678  0.00500585 -0.02423782  0.09541748 -0.0024861   0.10121399
  -0.07218124 -0.00624439 -0.10380664  0.0130345 ]
 [ 0.08628678  0.00500585 -0.02423782  0.09541748 -0.0024861   0.10121399
  -0.07218124 -0.00624439 -0.10380664  0.0130345 ]
 [ 0.08628678  0.00500585 -0.02423782  0.09541748 -0.0024861   0.10121399
  -0.07218124 -0.00624439 -0.10380664  0.0130345 ]
 [ 0.08628678  0.00500585 -0.02423782  0.09541748 -0.0024861   0.10121399
  -0.07218124 -0.00624439 -0.10380664  0.0130345 ]
 [ 0.08628678  0.00500585 -0.02423782  0.09541748 -0.0024861   0.10121399
  -0.07218124 -0.00624439 -0.10380664  0.0130345 ]
 [ 0.08628678  0.00500585 -0.02423782  0.09541748 -0.0024861   0.10121399
  -0.07218124 -0.00624439 -0.10380664  0.0130345 ]
 [ 0.08628678  0.00500585 -0.02423782  0.09541748 -0.0024861   0.10121399
  -0.07218124 -0.00624439 -0.10380664  0.0130345 ]
 [ 0.08628678  0.00500585 -0.02423782  0.09541748 -0.0024861   0.10121399
  -0.07218124 -0.00624439 -0.10380664  0.0130345 ]
 [ 0.08628678  0.00500585 -0.02423782  0.09541748 -0.0024861   0.10121399
  -0.07218124 -0.00624439 -0.10380664  0.0130345 ]
 [ 0.08628678  0.00500585 -0.02423782  0.09541748 -0.0024861   0.10121399
  -0.07218124 -0.00624439 -0.10380664  0.0130345 ]
 [ 0.08628678  0.00500585 -0.02423782  0.09541748 -0.0024861   0.10121399
  -0.07218124 -0.00624439 -0.10380664  0.0130345 ]
 [ 0.08628678  0.00500585 -0.02423782  0.09541748 -0.0024861   0.10121399
  -0.07218124 -0.00624439 -0.10380664  0.0130345 ]
 [ 0.08628678  0.00500585 -0.02423782  0.09541748 -0.0024861   0.10121399
  -0.07218124 -0.00624439 -0.10380664  0.0130345 ]
 [ 0.08628678  0.00500585 -0.02423782  0.09541748 -0.0024861   0.10121399
  -0.07218124 -0.00624439 -0.10380664  0.0130345 ]]
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
  • 21
  • 22
  • 23
  • 24
  • 25
  • 26
  • 27
  • 28
  • 29
  • 30
  • 31
  • 32
  • 33
  • 34
  • 35
  • 36
  • 37
  • 38
  • 39
  • 40
  • 41
  • 42
  • 43
  • 44
  • 45
  • 46
  • 47
  • 48
  • 49
  • 50
  • 51
  • 52
  • 53
  • 54
  • 55
  • 56
  • 57
  • 58
  • 59
  • 60
  • 61
  • 62
  • 63
  • 64
  • 65
  • 66
  • 67
  • 68
  • 69
  • 70
  • 71
  • 72
  • 73
  • 74
  • 75
  • 76
  • 77
  • 78
  • 79
  • 80
  • 81
  • 82
  • 83
  • 84
  • 85
  • 86
  • 87
  • 88
  • 89
  • 90
  • 91
  • 92
  • 93
  • 94
  • 95
  • 96
  • 97
  • 98
  • 99
  • 100
  • 101
  • 102
  • 103
  • 104
  • 105
  • 106
  • 107
  • 108
  • 109
  • 110
  • 111
  • 112
  • 113
  • 114
  • 115
  • 116
  • 117
  • 118
  • 119
  • 120
  • 121
  • 122
  • 123
  • 124
  • 125
  • 126
  • 127
  • 128

静态图的语法约束

在Graph模式下,Python代码并不是由Python解释器去执行,而是将代码编译成静态计算图,然后执行静态计算图。因此,编译器无法支持全量的Python语法。MindSpore的静态图编译器维护了Python常用语法子集,以支持神经网络的构建及训练。详情可参考静态图语法支持

JitConfig配置选项

在图模式下,可以通过使用JitConfig配置选项来一定程度的自定义编译流程,目前JitConfig支持的配置参数如下:

  • jit_level: 用于控制优化等级。
  • exec_mode: 用于控制模型执行方式。
  • jit_syntax_level: 设置静态图语法支持级别,详细介绍请见静态图语法支持

静态图高级编程技巧

使用静态图高级编程技巧可以有效地提高编译效率以及执行效率,并可以使程序运行的更加稳定。详情可参考静态图高级编程技巧

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/神奇cpp/article/detail/784102
推荐阅读
相关标签
  

闽ICP备14008679号