机器学习训练之使用静态图加速

前言

MindSpore有两种运行模式:动态图模式和静态图模式。默认情况下是动态图模式,也可以手工切换为静态图模式。

动态图模式

动态图的特点是计算图的构建和计算同时发生,符合Python的解释执行方式。在调试模型时较为方便,能够实时得到中间结果的值。但由于所有节点都需要被保存,导致难以对整个计算图进行优化。在MindSpore中,动态图模式又被称为PyNative模式,推荐在脚本开发和网络流程调试过程中使用。

静态图模式

相较于动态图而言,静态图的特点是将计算图的构建和实际计算分开(Define and run)。

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

静态图模式的使用场景

MindSpore编译器专注于Tensor数据的计算和微分处理,适合使用MindSpore API和基于Tensor对象的操作进行静态图编译优化。静态图模式存在编译耗时,如果函数无需反复执行,则使用静态图加速可能没有价值。

静态图模式开启方式

MindSpore提供了jit装饰器,可以通过修饰Python函数或者Python类的成员函数使其被编译成计算图,从而提高运行速度。可以针对需要优化的模块进行图编译加速,保持其他部分的动态图灵活性。jit修饰的部分始终以静态图模式运行。当需要对Tensor的某些运算进行编译加速时,可以在其定义的函数上使用jit修饰器。

基于装饰器的开启方式

MindSpore提供了jit装饰器,可以通过修饰Python函数或者Python类的成员函数使其被编译成计算图,从而提高运行速度。通过对想要进行性能优化的部分进行图编译加速,而保持其他部分仍使用解释执行方式,保持动态图的灵活性。被jit修饰的部分始终会以静态图模式进行运行。需要对Tensor的某些运算进行编译加速时,可以在其定义的函数上使用jit修饰器。

基于context的开启方式

静态图的语法约束

在MindSpore的Graph模式下,Python代码会被编译成静态计算图,然后执行。静态图编译器支持Python常用语法子集,以支持神经网络的构建和训练。可以通过JitConfig配置选项来自定义编译流程,包括控制优化等级、模型执行方式以及静态图语法支持级别。

总结

本文介绍了MindSpore中动态图(PyNative)和静态图(Graph)两种运行模式的特点和使用场景。动态图更适合模型调试和快速迭代,静态图则能提供更高的性能。详细阐述了切换运行模式的方法,包括使用jit装饰器对部分函数进行图编译加速,以及利用JitConfig选项进一步优化静态图的编译和执行。同时也提醒了静态图编程中的语法限制,并介绍了一些高级编程技巧以提高性能和稳定性。总的来说,MindSpore提供了灵活的动态图和高性能的静态图两种选择,开发者可根据具体需求进行合理选择和应用。

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

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

相关文章

开发者评测|操作系统智能助手OS Copilot

操作系统智能助手OS Copilot 文章目录 操作系统智能助手OS CopilotOS Copilot 是什么优势功能 操作步骤创建实验重置密码创建Access Key配置安全组安装 os-copilot环境变量配置功能评测命令行模式多轮交互模式 OS Copilot 产品体验评测反馈OS Copilot 产品功能评测反馈 参考文档…

做测试/爬虫 selenium 元素定位 谷歌浏览器 插件推荐,提高元素定位效率

注:插件均在谷歌应用商店 下载 1.XPath Helper 插件 作用:用于Html中对目标字段或者属性值进行匹配 快捷启动:ctrl shift x 示例图如下: 2. ChroPath 插件 作用: 提高元素定位效率 启动:谷歌浏览器 按 F12 -&g…

【电商系统开发实用接口指南】包含国内国外多电商平台商品数据对接(附文档)

关于电商数据接口 开发电商系统的朋友对于电商平台API肯定不陌生,API接口即应用程序编程接口,电商平台开放部分API接口,供商家和服务商调用,以满足电商业务管理需求。随着电商市场需求的日益增长以及技术手段的不断成熟&#xf…

【C++第十课 - stack_queue】stack、queue的使用、适配器模型stack、queue和priority_queue的底层实现、deque

目录 一、stack使用1、push2、pop3、empty4、top题目1、最小栈2、栈的压入、弹出序3、逆波兰表达式求值 二、queue的使用priority_queue习题 三、适配器stack的底层实现queue的底层实现priority_queue的底层实现仿函数/函数对象函数指针 四、deque 一、stack使用 stack是个容器…

聚焦大模型应用落地,2024全球数字经济大会人工智能专题论坛在京举办

7月1日下午,2024全球数字经济大会人工智能专题论坛在中关村国家自主创新示范区会议中心举办。论坛紧扣大模型应用落地这一热点,以“应用即未来——大模型赋能千行百业,新生态拥抱产业未来”为主题,备受社会各界关注。 一、北京已…

Windows中Git的使用(2024最新版)

Windows中Git的使用 获取ssh keys本地绑定邮箱初始化本地仓库添加到本地缓存区提交到本地缓存区切换本地分支为main关联远程分支推送到GitHub查看推送日志 Git 2020年发布了新的默认分支名称"main",取代了"master"作为主分支的名称。操作有了些…

【已解决】: fatal error: cuda_runtime_api.h: No such file or directory

既然他找不到,我们就把路径给他写清楚! 检查自己是不是有这个文件: 去路径/usr/local下,使用命令查询是否拥有该文件: find . -name cuda_runtime_api.h结果: 因为我要使用的是cuda-11.3,因…

【Spring Cloud】一个例程快速了解网关Gateway的使用

Spring Cloud Gateway提供了一个在Spring生态系统之上构建的API网关,包括:Spring 5,Spring Boot 2和Project Reactor。Spring Cloud Gateway旨在提供一种简单而有效的路由方式,并为它们提供一些网关基本功能,例如&…

自用款 复制粘贴工具 Paste macOS电脑适配

Paste是一款专为Mac和iOS用户设计的剪贴板管理工具,它提供了强大的剪贴板增强功能。Paste能够实时记录用户复制和剪切的内容,包括文本、图片、链接等多种数据类型,并形成一个可视化的剪贴板历史记录,方便用户随时访问和检索。此外…

【论文通读】RuleR: Improving LLM Controllability by Rule-based Data Recycling

RuleR: Improving LLM Controllability by Rule-based Data Recycling 前言AbstractMotivationSolutionMethodExperimentsConclusion 前言 一篇关于提升LLMs输出可控性的短文,对SFT数据以规则的方式进行增强,从而提升SFT数据的质量,进而间接帮…

uniapp如何隐藏默认的页面头部导航栏,uniapp开发小程序如何隐藏默认的页面头部导航栏

uniapp如何隐藏默认的页面头部导航栏 隐藏后 在pages.json文件中插入 在uni-app中,设置navigationStyle为custom来自定义导航栏,可以隐藏默认的头部了。 {"path": "pages/index/index","name": "index",&qu…

IDEA 开发工具

IDEA 开发工具 IDEA软件激活新建项目新建project 运行调试 IDEA软件激活 访问激活码网进入带*的域名下载并解压左上角的zip包先执行sh uninstall.sh,再执行sh install.sh在带*的网页中复制并使用激活码code 新建项目 新建project file》New〉Project》New Proje…

06.C2W1.Auto-correct

往期文章请点这里 目录 OverviewAutocorrectWhat is autocorrect?How it works Building the modelMinimum edit distanceMinimum edit distance algorithmMinimum edit distance Part 2Minimum edit distance Part 3 往期文章请点 这里 Overview 本周学习目标:…

嵌入式鸿蒙系统openharmony编译方法详解

大家好,时光如梭,今天主要给大家分享一下,鸿蒙系统的使用方法,以及源码该如何编译,其中要注意的细节有哪些? 第一:OpenHarmony系统简介 OpenHarmony 是由开放原子开源基金会(OpenAtom Foundation)孵化及运营的开源项目, 目标是面向全场景、全连接、全智能时代,基于…

数据结构之“队列”(全方位认识)

🌹个人主页🌹:喜欢草莓熊的bear 🌹专栏🌹:数据结构 前言 上期博客介绍了” 栈 “这个数据结构,他具有先进后出的特点。本期介绍“ 队列 ”这个数据结构,他具有先进先出的特点。 目录…

秋招提前批面试经验分享(上)

⭐️感谢点开文章👋,欢迎来到我的微信公众号!我是恒心😊 一位热爱技术分享的博主。如果觉得本文能帮到您,劳烦点个赞、在看支持一下哈👍! ⭐️我叫恒心,一名喜欢书写博客的研究生在读…

【Java EE】Spring Boot配置文件

Spring Boot配置文件 一、配置文件的分类 一共有三类,分别是 properties, yml, yaml,其中properties相当于是老版,yml是yaml的缩写,这两个相当于新版。 二、配置文件的语法 1. properties 语法的构成是以"." 为分隔…

PingCAP 成为全球数据库管理系统市场增速最快的厂商

近日,Gartner 发布的《Market Share Analysis: Database Management Systems, Worldwide, 2023》(2024 年 6 月)报告显示:“2023 年全球数据库管理系统(DBMS)市场的增长率为 13.4%,略低于去年的…

【Spring AOP 源码解析前篇】什么是 AOP | 通知类型 | 切点表达式| AOP 如何使用

前言(关于源码航行) 在准备面试和学习的过程中,我阅读了还算多的源码,比如 JUC、Spring、MyBatis,收获了很多代码的设计思想,也对平时调用的 API 有了更深入的理解;但过多散乱的笔记给我的整理…

【Linux系统编程】文件系统

介绍: 文件系统是操作系统中负责管理和存储文件信息的软件结构,它组织和管理磁盘上的文件和目录,并定义了文件的存储结构。 Linux文件系统采用树状结构,只有一个根目录(用“/”表示),其中含有下…