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

news2024/12/23 22:44:16

写在前面

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

动态图

看了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,是花了不少人力物力的,如果没有真正的商业化起来,可能亏损比较大了。还是希望能做好的。

打卡

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

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1928049.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

【分布式系统】CephFS文件系统之MDS接口详解

目录 一.服务端操作 1.在管理节点创建 mds 服务 2.查看各个节点的 mds 服务(可选) 3.创建存储池,启用 ceph 文件系统 4.查看mds状态,一个up,其余两个待命,目前的工作的是node01上的mds服务 5.创建用户…

从零开始搭建vue框架

流程图 开始 | |-- 2013 年底,尤雨溪开始开发 Vue 框架,最初命名为 Seed,后更名为 Vue | |-- 2013 年 12 月,Vue 0.6.0 版本 | |-- 2014 年 1 月 24 日,Vue 0.8.0 版本发布 | |-- 2014 年 2 月 25 日,…

数据中心内存RAS技术发展背景

随着数据量的爆炸性增长和云计算的普及,数据中心内存的多比特错误及由无法纠正错误(UE)导致的停机问题日益凸显,这些故障不仅影响服务质量,还会带来高昂的修复或更换成本。随着工作负载、硬件密度以及对高性能要求的增加,数据中心…

408数据结构-图的应用3-有向无环图、拓扑排序 自学知识点整理

前置知识:表达式,图的遍历 有向无环图描述表达式 有向无环图:若一个有向图中不存在环,则称为有向无环图,简称 D A G DAG DAG图 。 (图片来自王道考研408数据结构2025) 由王道考研-咸鱼学长的讲…

进销存管理系统设计

进销存管理系统(Inventory Management System,简称IMS)是一种帮助企业有效管理商品的入库、出库及库存情况的信息系统。良好的进销存管理系统能够提升库存周转率、减少库存成本、提高订单处理效率,从而增强企业的市场竞争力。以下…

SD card知识总结

一、基础知识 1、简介 SD Card 全称(Secure Digital Memory Card),日本电子公司松下(Panasonic)、瑞典公司爱立信(Ericsson)、德国公司西门子(Siemens)共同开发的,于1999年发布根…

超声波清洗机排行榜,热门超声波清洗机哪个更值得入手?

用超声波清洗机洗眼镜已经不算是什么惊奇的事情了,并且很多戴眼镜的朋友更是因为超声波清洗机能够清洗眼镜而慕名前来。毕竟现在洗眼镜能够用超声波清洗机代劳实在是一件很省心的事情!~但是,对于超声波清洗机你们真的了解吗?因此本…

从零开始学习cartographer源码 | 番外:如何在wsl内使用clion阅读cartographer源码

从零开始学习cartographer源码 | 番外:如何在wsl内使用clion阅读cartographer源码 安装WSL2及Clion安装WSL2-Ubuntu20.04安装Clion安装ROS 安装Cartographer一键安装Cartographer 在Clion打开cartographer工程安装gdb手动创建CMakeLists.txt打开项目配置wsl工具链配…

一款简单的音频剪辑工具

Hello,大家好呀,我是努力搬砖的小画。 今天小画给大伙分享一款强大的音频剪辑工具--【剪画】,无需下载就能使用,支持对MP3、M4A、AAC等多种格式文件进行剪辑、分割、拼接、混音、变声、淡入淡出、音频格式转换、视频转音频、消除…

网关设备BL122实现Modbus RTU/TCP转Profinet协议

Modbus与Profinet是两种广泛应用于工业自动化领域的通信协议:Modbus因其简单性和兼容性,在许多工业设备中得到广泛应用;而Profinet提供了高速、高精度的通信能力,适合于复杂控制系统和实时应用,但两者之间的差异导致了…

安防视频监控/视频汇聚EasyCVR平台浏览器http可以播放,https不能播放,如何解决?

安防视频监控/视频集中存储/云存储/磁盘阵列EasyCVR平台基于云边端一体化架构,兼容性强、支持多协议接入,包括国标GB/T 28181协议、部标JT808、GA/T 1400协议、RTMP、RTSP/Onvif协议、海康Ehome、海康SDK、大华SDK、华为SDK、宇视SDK、乐橙SDK、萤石云SD…

Pod网络、Service网络、网络插件Calico、网络插件Flannel(2024-07-12)

一、Pod网络 在K8S集群里,多个节点上的Pod相互通信,要通过网络插件来完成,比如Calico网络插件。 使用kubeadm初始化K8S集群时,有指定一个参数 --pod-networkcidr10.18.0.0/16 它用来定义Pod的网段。而我们在配置Calico的时候&…

LED显示屏中什么是光纤传输?什么是网线传输?

在科技日新月异的今天,LED显示屏已成为信息传播和视觉展示的重要工具。然而,一块亮丽的LED显示屏背后,数据传输技术发挥着至关重要的作用。今天,我们就来一起探索LED显示屏中两种常见的数据传输方式:光纤传输和网线传输…

护网--2

实验要求: 1、办公区设备可以通过电信链路和移动链路上网(多对多的NAT,并且需要保留一个公网IP不能用来转换) 2、分公司设备可以通过总公司的移动链路和电信链路访问到Dmz区的http服务器 3、多出口环境基于带宽比例进行选路,但是,…

力扣 二叉树 相关题目总结2

目录 一、101 对称二叉树 题目 题解 方法一:递归(推荐) 方法二:迭代 二、100 相同的树 题目 题解 方法一:递归法 方法二:深度优先搜索 三、111 二叉树的最小深度 题目 题解 方法一&#xff1…

单点触摸屏和多点触摸屏介绍以及原理简略

单点和多点触摸屏技术是现代触摸设备的基础,下述简单解释这两种技术及其差异。 单点触摸屏 单点触摸屏只能在某一时刻检测一个触摸点的位置。这种触摸屏适用于简单的触摸交互,如点击和拖动。 工作原理 单点触摸屏主要通过以下几种技术实现&#xff1…

VS编译和使用modbus库

一.libmodbus 库 免费的开源的,modbus 开发库,支持 RTU 和 TCP 官网:libmodbus.org 在线文档:https://libmodbus.org/reference/ 二.源码简介 项目说明doc 目录各 API 接口的详细说明文档src 目录源码都在这个目录下tests 目录…

【Redis从0到1进阶】Redis 持久化

笔记内容来自B站博主《遇见狂神说》:Redis视频链接 Redis 是内存数据库,如果不将内存中的数据库状态保存到磁盘,那么一旦服务器进程退出,服务器中的数据库状态也会消失。所有Redis 提供了持久化功能! 一、RDB&#xff…

pixelRNN与pixelCNN

目的:为了找到一个最能解释得到的生成样本的模型 PixelRNN 我们需要利用概率链式法则将图像x的生成概率转变为每个像素生成概率的乘积,也就是每个通道生成概率的乘积。 公式: 公式解释:p(x)是每个图像x的概率;右侧为…

一文快速接入银行卡识别API

银行卡识别API 能通过机器学习和图像识别技术来解析银行卡相关信息,根据用户上传卡片自动识别内容,返回该卡的卡号、所属银行及银行类型等信息。可以在用户需要输入银行卡等相关信息时使用该功能,帮助用户快速输入正确信息,简化用…