《昇思25天学习打卡营第5天|10使用静态图加速》

写在前面

跳过了模型训练和保存两节,模型训练的例子已经学习过,都是重复的内容,不进行详细的学习了,除非要使用类似的函数。
因此接下来开始学习初学教程的最后一节:使用静态图加速,希望能学习到一些内容。

动态图

看了mindspore介绍,应该整体思路是和tensorflow2.0更接近的,或者说是融合了pytorch+tensorflow+numpy,也不能说不好,但是暂时还没看出来有哪些特别的优势。
下面是类似pytorch eager模式的使用例子:

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)

好奇为什么可以直接进行推理,dense中的w和b都还没有定义呢,查看一下:

import mindspore as ms
from mindspore import nn

# 创建一个Dense层
dense_layer = nn.Dense(28*28, 512)

# 打印初始化的权重和偏置
print("Weights:", dense_layer.weight.asnumpy())
print("Bias:", dense_layer.bias.asnumpy())

结果如下:
在这里插入图片描述
看起来是一些随机值。

静态图

装饰器

使用较简单的装饰器方式,对静态图进行加速。
在这里插入图片描述
也可以直接调用装饰器函数
在这里插入图片描述
局部加速方法:
在这里插入图片描述

context维度开启加速

在这里插入图片描述
直接通过设置变量,进行全局的加速。

看了上面两个加速方式,这里做的还是比较好的。
由于我接触过torch_npu,知道他们是能完全向pytorch进行兼容的,看来底层的ascend算子抽离的还是不错的,除此之外也一定是能兼容tensorflow的。然后还独自揉了一个mindspore,是花了不少人力物力的,如果没有真正的商业化起来,可能亏损比较大了。还是希望能做好的。

打卡

在这里插入图片描述
完成本节,几乎就完成了新手村的一些例子。接下来希望可以学习一些大语言模型或者并行训练的任务。

相关推荐

  1. 25学习14|静态加速

    2024-07-16 14:54:05       23 阅读

最近更新

  1. docker php8.1+nginx base 镜像 dockerfile 配置

    2024-07-16 14:54:05       67 阅读
  2. Could not load dynamic library ‘cudart64_100.dll‘

    2024-07-16 14:54:05       72 阅读
  3. 在Django里面运行非项目文件

    2024-07-16 14:54:05       58 阅读
  4. Python语言-面向对象

    2024-07-16 14:54:05       69 阅读

热门阅读

  1. Elasticsearch索引映射定义

    2024-07-16 14:54:05       19 阅读
  2. 树莓派使用蓝牙设置wifi网络

    2024-07-16 14:54:05       18 阅读
  3. Spring Boot项目中,对接口请求参数打印日志

    2024-07-16 14:54:05       23 阅读
  4. 第二十一条:为传诸后世而设计接口

    2024-07-16 14:54:05       20 阅读
  5. 墨烯的C语言技术栈-C语言基础-015

    2024-07-16 14:54:05       19 阅读
  6. JWT令牌认证介绍及安全风险

    2024-07-16 14:54:05       21 阅读
  7. 导航专业入门,高考/考研假期预习指南

    2024-07-16 14:54:05       21 阅读