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

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

文章目录

  • 昇思25天学习打卡营第10天 | 使用静态图加速
    • 动态图的开启方式
    • 静态图的开启方式
      • 基于全局context的开启方式
      • 基于修饰器的开启方式
    • 总结
    • 打卡

AI编译框架分为两种运行模式:

  • 动态图模式: 计算图的构建和计算同时发生(define by run),符合python的解释执行方式。在调试模型时较为方便,能够实时得到中间结果的值。但由于所有节点都需要保存,导致难以对整个计算图进行优化。
  • 静态图模式: 计算图的构建和实际计算分开(define and run)。在MindSpore中静态图模式又称Graph模式,基于图优化、计算图整图下沉等技术,编译器可以对图进行全局的优化,获得较好的性能。适用于网络固定且需要高性能的场景。

动态图的开启方式

在MindSpore中,动态图又被称为PyNative模式。可以通过:

mindspore.set_context(mode=mindspore.PYNATIVE_MODE)

进行全局启用。

静态图的开启方式

基于全局context的开启方式

mindspore.set_context(mode=mindspore.GRAPH_MODE)

基于修饰器的开启方式

使用jit修饰器修饰Python函数或者Python类的成员函数使其被编译成计算图。而模型的其他部分任旧使用解释执行方式,在性能优化的同时而不丢失动态图的灵活性。

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

或者

def run(x):model = Network()return model(x)run_with_jit = ms.jit(run)
output = run(input)

总结

这一节的内容对MindSpore框架中的两种计算模式进行了介绍,动态图模式十分灵活,可以方便的获取中间结果,但由于节点是运行时定义并计算的,所以难以进行优化。而静态图模式模式直接编译计算图,可以方便的进行性能优化。通过jit修饰器可以在不失动态图灵活性的情况下对部分计算进行优化。

打卡

请添加图片描述

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

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

相关文章

读人工智能全传07智能体

1. 布鲁克斯革命 1.1. 随着科学认知的发展,有时候旧有科学体系会面临全盘崩溃的危机,新的科学体系诞生,取代传统的、既定的科学体系,这就意味着科学的范式将发生变化 1.2. 澳大利亚机器人学家罗德尼布鲁克斯(Rodney Brooks)&…

DS1302实时时钟芯片_读写时间实现电子钟功能

一、前言 1.1 功能说明 本项目以STC90C51单片机为核心,结合DS1302实时时钟芯片和IIC协议的OLED显示屏,设计了一款功能丰富、操作简便的电子时钟。 【1】项目目标 实现高精度的时间显示,包括时、分、秒。提供按键调整时间的功能&#xff0…

fatal error: NvInfer.h: No such file or directory 的参考解决方法

文章目录 写在前面一、问题描述二、解决方法参考链接 写在前面 自己的测试环境&#xff1a; Ubuntu20.04 一、问题描述 编译调用 tensorrt 的程序时&#xff0c;出现如下报错&#xff1a; fatal error: NvInfer.h: No such file or directory7 | #include <NvInfer.h>…

sublime使用

快速格式化&#xff1a;control command j&#xff08;前提是安装了Pretty JSON 插件&#xff09; 选中多行编辑&#xff1a;option command直接移动bar选中 多光标编辑功能对所有行进行相同的操作。以下是一些常用的方法&#xff1a; 1. 使用鼠标和键盘选择多行 按住 Ctrl&am…

[Java]Swing版坦克大战小游戏项目开发(1)——new出一个窗口

highlight: xcode theme: vuepress 前言 本系列文章带领 Java 初学者学习使用 Java 语言结合 Swing 技术以及设计模式开发一款经典小游戏——坦克大战。通过这个小游戏&#xff0c;你可以学会很多实用的设计模式思想&#xff0c;并且提高你的编码水平。 熟悉Frame Frame 类是 J…

【java计算机毕设】基于java的奶茶店管理系统的设计与实现MySQL ssm JSP maven项目代码源码+文档

目录 1项目功能 2项目介绍 3项目地址 1项目功能 【java计算机毕设】奶茶店管理系统java MySQL ssm JSP maven项目源码代码万字文档 小组设计 2项目介绍 系统功能&#xff1a; 奶茶店管理系统包括管理员、用户俩种角色。 管理员功能包括个人中心模块用于修改个人信息和密码、…

如何在 Ubuntu 14.04 上安装和配置 Syncthing 来同步目录

前些天发现了一个巨牛的人工智能学习网站&#xff0c;通俗易懂&#xff0c;风趣幽默&#xff0c;忍不住分享一下给大家。点击跳转到网站。 介绍 有许多程序可以在不同计算机之间同步文件。Syncthing 是一个引人注目的新选择&#xff0c;它跨平台、完全开源、非常灵活且易于使…

UDP通讯实现

服务器端&#xff1a; 1.获取套接字 int fd;fdsocket(AF_INET,SOCK_DGRAM,0);if(fd<0){perror("socket");exit(0);} #include <sys/types.h> #include <sys/socket.h> int socket(int domain, int type, int protocol); -domain: 指定通信域&…

Elasticsearch 面试题指南

Elasticsearch 面试题指南 本文档提供了一份详细的 Elasticsearch 面试题指南&#xff0c;涵盖了 Elasticsearch 的核心概念、架构、配置、操作和实际应用场景等方面的内容。希望通过这份指南能够帮助你在 Elasticsearch 面试中取得成功。 目录 Elasticsearch 基础知识 什么…

Retrofit框架源码深度剖析【Android热门框架分析第二弹】

Android热门框架解析&#xff0c;你确定不来看看吗&#xff1f; OkHttp框架源码深度剖析【Android热门框架分析第一弹】 Retrofit框架源码深度剖析【Android热门框架分析第二弹】 什么是Retrofit&#xff1f; 准确来说&#xff0c;Retrofit 是一个 RESTful 的 HTTP 网络请求…

网络编程:数据包的封装----libnet库

使用libnet库封装数据包 安装库sudo apt-get install libnet-dev 1、数据包内存初始化 libnet_t *libnet_init(int injection_type, char *device, char *err_buf) 2、构造数据包&#xff0c; 由应用层UDP/TCP到MAC层的顺序构造 封装udp数据包的函数 libnet_ptag_t libnet_bui…

Miniconda的常见用法——以Isaacgym为例

1. ubuntu24.04安装minicondda mkdir -p ~/miniconda3 wget https://repo.anaconda.com/miniconda/Miniconda3-latest-Linux-x86_64.sh -O ~/miniconda3/miniconda.sh解释下这段代码 bash ~/miniconda3/miniconda.sh -b -u -p ~/miniconda3~/miniconda3/miniconda.sh: 指向Mi…

java中Function、Consumer和Supplier是函数式接口吗?

是的&#xff0c;在Java中&#xff0c;Function、Consumer 和 Supplier 都是函数式接口&#xff0c;它们都是Java 8引入的java.util.function包中的一部分。这些接口为Lambda表达式提供了类型支持&#xff0c;允许以更简洁的方式表示方法引用和匿名内部类。 Function<T, R&g…

SHARPNESS-AWARE MINIMIZATION FOR EFFICIENTLY IMPROVING GENERALIZATION--论文笔记

论文笔记 资料 1.代码地址 https://github.com/google-research/sam https://github.com/davda54/sam 2.论文地址 https://arxiv.org/abs/2010.01412 3.数据集地址 论文摘要的翻译 在当今严重过度参数化的模型中&#xff0c;训练损失的值很难保证模型的泛化能力。事实上…

代码随想录算法训练营第三十天|62.不同路径、63. 不同路径 II

62.不同路径 一个机器人位于一个 m x n 网格的左上角 &#xff08;起始点在下图中标记为 “Start” &#xff09;。 机器人每次只能向下或者向右移动一步。机器人试图达到网格的右下角&#xff08;在下图中标记为 “Finish” &#xff09;。 问总共有多少条不同的路径&#xff…

软设之生成器模式

生成器模式的意图是:将一个复杂的类表示与其构造分离&#xff0c;使得相同的构建过程能够得出不同的表示 Builder:抽象建造者&#xff0c;为创建一个产品对象各个部件指定抽象接口&#xff0c;把产品的生产过程分解为不同的步骤&#xff0c;从而使具体建造者在具体的建造步骤上…

Java中的对象克隆详解

Java中的对象克隆详解 大家好&#xff0c;我是免费搭建查券返利机器人省钱赚佣金就用微赚淘客系统3.0的小编&#xff0c;也是冬天不穿秋裤&#xff0c;天冷也要风度的程序猿&#xff01; 对象克隆在Java编程中是一个重要的概念和技术。它允许我们创建一个对象的精确副本&…

MySQL第三次练习

作业三 一 先创建DB abc&#xff0c;创建table student 1、插入一条记录 2、添加多条记录 3、添加部分记录 4、加0.5 5、删除成绩为空的记录 二 1、创建一个用户test1使他只能本地登录拥有查询student表的权限。 2、查询用户test1的权限。 3、删除用户test1. 全在一张图上…

怎样优化 PostgreSQL 中对日期时间范围的模糊查询?

文章目录 一、问题分析&#xff08;一&#xff09;索引未有效利用&#xff08;二&#xff09;日期时间格式不统一&#xff08;三&#xff09;复杂的查询条件 二、优化策略&#xff08;一&#xff09;使用合适的索引&#xff08;二&#xff09;规范日期时间格式&#xff08;三&a…