【2023 · CANN训练营第一季】MindSpore模型快速调优攻略 第二章——MindSpore调试调优

news2024/12/23 5:49:29

1.生态迁移

image.png

生态迁移工具使用示例

image.png

生态迁移工具技术方案

不同框架间模型定义前端表达差别巨大(相同算子的API技术难点 、
算子功能、模型构建方式差别较大);
对于同一框架,不管前端表达差异如何,最终对应的计算
图是相似的。因此提出:基于模型的迁移方案
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-jZ1Xkxst-1685069610205)(https://bbs-img.huaweicloud.com/blogs/img/20230526/1685068836900161981.png)]
image.png

onnx介绍:

image.png

生态迁移工具迁移案例分享

image.png
教程步骤:

  1. ONNX模型导出;
  2. ONNX模型验证;
  3. MindConverter进行模型脚本和权重迁移;
  4. MindSpore模型验证;

2.模型精度调优

MindSpore调试器是为图模式训练提供的调试工具,可以用来查看并分析计算图节点的中间结果。
操作流程:
• 以调试器模式启动MindInsight,等待训练连接;
mindinsight start --port {PORT} --enable-debugger True --debugger-port {DEBUGGER_PORT}
• 配置相关环境变量,运行训练脚本;
export ENABLE_MS_DEBUGGER=1 export MS_DEBUGGER_PORT={DEBUGGER_PORT}
• 训练连接成功,在MindInsight调试器界面设置监测点;
• 在MindInsight调试器界面分析训练执行情况。
在MindSpore图模式的训练过程中,用户无法从Python层获取到计算图中间节点的结果,使得训练调试变得很困难。使用MindSpore调试器,用户可以:
• 在MindInsight调试器界面结合计算图,查看图节点的输出结果;
• 设置监测点,监测训练异常情况(比如检查张量溢出),在异常发生时追踪错误原因;
• 查看权重等参数的变化情况。

• 使用调试器功能对训练现场进行检查
– 配置“检查权重变化过小”监测点,检查权重是否变化过小;
– 配置“检查未变化权重”监测点,检查权重是否不更新;
– 配置“检查梯度消失”监测点,定位异常的梯度;
– 配置“检查张量溢出”监测点,定位NAN/INF出现位置;
– 配置“检查过大张量”监测点,定位出现大值的算子;
– 配置“检查权重变化过大”、“检查梯度消失”、“检查梯度过大”监测点,定位异常的权重或梯度;

3.模型性能调优

性能调优工具Profiler介绍

Profiler为MindSpore提供了性能调优能力,在算子性能、迭代性能、数据处理性能等方面提供了易用、丰富的调试功能,帮助用户快速定位性能瓶颈点,提升网络性能。
Profiler工具为用户提供的能力可以分成两部分:
 MindSpore侧在训练脚本中为用户提供性能数据收
集的启动接口和数据分析接口,最终生成性能数据
文件;
 MindInsight侧为用户提供可视化界面,将通过多个
维度展示性能数据以及统计分析结果。
image.png

使用方法:

  1. 训练开始阶段初始化Profiler,开始性能收集;
  2. 训练结束后使用analyse方法解析性能数据。

注意:
 目前Profiler已经支持GPU场景,GPU下的使用方法和
Ascend的使用方法一致;
 GPU初始化Profiler时只有output_path参数有效;

  1. 启动MindInsight可视化界面:
    mindinsight start --port 9001 --summary-base-dir ./
  2. 通过浏览器访问MindInsight交互式界面:
    <your server ip address>:9001/
  3. 停止MindInsight可视化服务:
    mindinsight stop --port 9001

本章总结

• 生态迁移工具的能力与基本使用:
mindconverter --help
• 精度调试器的能力与基本使用;
mindinsight start --port {PORT} --enable-debugger True --debugger-port {DEBUGGER_PORT}
• 性能调试器的能力与基本使用;
训练脚本中添加:profiler = Profiler(), …, profiler.analyse()
• ONNX模型的基本概念:
– Graph, Node, Value Info, Initializer;

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

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

相关文章

node.js+vue房屋租赁管理系统z0g8w

本系统主要包括以下功能模块&#xff1a;租户、出租人、房源信息、预约看房、合同信息等模块。 其中设计的主要功能如下&#xff1a; &#xff08;1&#xff09;用户的注册和登录本系统&#xff0c;登录到系统的首页。 &#xff08;2&#xff09;用户可以发布自己的房源信息…

快速了解iptables

初识 iptables是什么&#xff1f; iptables是一个在Linux操作系统上使用的防火墙工具&#xff0c;它可以用于配置和管理网络数据包的过滤、转发和修改等操作。 过滤数据包&#xff1a;iptables可以根据不同的规则过滤网络数据包&#xff0c;例如根据源IP地址、目标IP地址、端…

如何在华为OD机试中获得满分?Java实现【不含101的数】一文详解!

✅创作者&#xff1a;陈书予 &#x1f389;个人主页&#xff1a;陈书予的个人主页 &#x1f341;陈书予的个人社区&#xff0c;欢迎你的加入: 陈书予的社区 &#x1f31f;专栏地址: Java华为OD机试真题&#xff08;2022&2023) 文章目录 1. 题目描述2. 输入描述3. 输出描述…

开源开放 生态共建 | openKylin社区单位会员突破200家!

当前&#xff0c;开放、协作、共享的开源模式已成为全球软件技术和产业创新的主导&#xff0c;也为信息技术国产自主化提供了强大助力。openKylin作为中国桌面操作系统开源社区&#xff0c;以聚焦桌面操作系统根技术为核心、以孵化相关领域关键项目为目标、以布道开源文化为抓手…

堪称「史上最详细」的整车信息安全强标将发布!释放了哪些信号?

确保汽车整车信息安全&#xff0c;或成为车企们继智能化竞争的下一个竞争焦点。 可以说&#xff0c;在智能化、网联化的驱动下&#xff0c;智能汽车成为了数据收集、数据传输、数据处理的关键节点&#xff0c;消费者在享受汽车智能化带来便利的同时&#xff0c;也逐渐重视智能…

【操作系统复习】第8章 文件管理

数据项、记录和文件 数据项 ➢ 基本数据项&#xff1a;描述一个对象的某种属性&#xff0c;又称字段 ➢ 组合数据项&#xff1a;由若干个基本数据项组成记录 ➢ 记录是一组相关数据项的集合&#xff0c;用于描述一个对象在某方面的属性。 ➢ 关键字&#xff1a;唯一能…

04_GC垃圾回收

面试题&#xff1a; JVM内存模型以及分区&#xff0c;需要详细到每个区放什么 堆里面的分区&#xff1a;Eden&#xff0c;survival from to&#xff0c;老年代&#xff0c;各自的特点。 GC的三种收集方法&#xff1a;标记清除、标记整理、复制算法的原理与特点&#xff0c;分…

python+vue高校网上跳蚤二手市场的设计与实现

商品信息是卖家供应用户必不可少的一个部分。在跳蚤市场发展的整个过程中&#xff0c;商品担负着最重要的角色。为满足如今日益复杂的管理需求&#xff0c;各类管理系统程序也在不断改进。本课题所设计的普通高校网上跳蚤市场&#xff0c;使用Django框架&#xff0c;Python语言…

【2023年电工杯数学建模竞赛】选题分析+A题B题完整思路+代码分享

思路和代码会第一时间分享出来&#xff0c;可以先关注博主 1.竞赛介绍 2.本次大赛选题分析 首先大家要清楚获奖只和比例有关&#xff0c;和具体题目关系不大&#xff0c;不会出现选难题就比简单题获奖率高很多的情况出现&#xff0c;这是一个选拔性质的比赛是按照比例来的 2…

(5.19-5.25)【大数据新闻速递】

关 注gzh“大数据食铁兽”&#xff0c;了解更多大数据快讯 【第八届亚太银行数字化创新峰会圆满落幕】 第八届亚太银行数字化创新峰会在2023年5月18日举行&#xff0c;邀请了30名大咖和超过300位行业顶尖人士参加。金融数据港和中银协中西部培训机构提供特别支持。峰会围绕银行…

Kafka实时数据即席查询应用与实践

作者&#xff1a;vivo 互联网搜索团队- Deng Jie Kafka中的实时数据是以Topic的概念进行分类存储&#xff0c;而Topic的数据是有一定时效性的&#xff0c;比如保存24小时、36小时、48小时等。而在定位一些实时数据的Case时&#xff0c;如果没有对实时数据进行历史归档&#xff…

list的基本介绍

list的基本信息&#xff1a; list是一个带头双向链表的结构。constant&#xff0c;常数、常量&#xff0c;constant time 即O(1)时间复杂度。 先来简单认识一下list list支持尾插&#xff0c;尾删&#xff0c;头插&#xff0c;头删 都是一些已知的内容。 和vector的区别就是支…

Java货运物流园管理系统源码

技术架构&#xff1a;spring boot、mybatis、redis、vue、element-ui 开发语言&#xff1a;java、vue、uniapp 开发工具&#xff1a;idea、vscode、hbuilder 前端框架&#xff1a;vue 后端框架&#xff1a;spring boot 数 据 库&#xff1a;mysql 移 动 端&#xff1a; …

vue vant 登录增加图片验证码显示

<!-- 登录表单 --><van-form submit"onLogin" :show-error"false":show-error-message"false"ref"login-form"failed"onFailed"> <van-fieldv-model"user.account"icon-prefix"toutiao"…

如何借助spire.doc,在 Word 中插入 OLE 对象

Spire.Doc for .NET是一款专门对 Word 文档进行操作的 .NET 类库。在于帮助开发人员无需安装 Microsoft Word情况下&#xff0c;轻松快捷高效地创建、编辑、转换和打印 Microsoft Word 文档。拥有近10年专业开发经验Spire系列办公文档开发工具&#xff0c;专注于创建、编辑、转…

AI的发展将会产生一个新的阶层

随着AI的发展将会产生一个新的阶层&#xff0c;那就是无用阶层&#xff0c;而且我们很多人都处在这个阶层。自今年以来&#xff0c;AI技术的发展所带来的应用&#xff0c;给我们的除了震撼还是震撼。Open AI的GPT4模型不但能够写出媲美专家发表的论文&#xff0c;还能通过各类专…

淘宝商品列表数据接口(支持价格、销量排序)

淘宝商品列表数据接口是淘宝提供的一种可以获取淘宝商品信息的接口。通过该接口&#xff0c;可以获取到具有一定规则的商品信息&#xff0c;例如按照价格排序、按照销量排序等。接口返回的数据格式为JSON格式&#xff0c;可以方便地处理数据。 我们可以通过调用淘宝提供的API&…

Flink SQL JOIN

双流JOIN(Regular Join) ​ Regular Join 就是大家熟知的双流 Join&#xff0c;语法上就是普通的 JOIN 语法。图中案例是通过广告曝光流关联广告点击流将广告数据打宽&#xff0c;打宽后可以进一步计算广告费用。从图中可以看出&#xff0c;曝光流和点击流都会存入 join 节点的…

优雅处理HTTP请求:过滤器、拦截器、ControllerAdvice和自定义AOP

我们在开发Spring Boot应用程序时&#xff0c;经常会遇到需要对HTTP请求进行一些处理的情况&#xff0c;例如鉴权、数据校验、请求日志记录等等。在处理HTTP请求时&#xff0c;我们可以使用四种不同的技术来实现这些功能&#xff1a;过滤器、拦截器、ControllerAdvice和自定义A…

谷歌seo多久才能见效?谷歌seo见效的参考时间线和效果预估

影响谷歌SEO的效果因素 谷歌SEO的效果因多种因素而异&#xff0c;包括竞争程度、关键词选择、网站优化程度、内容质量和网站的历史等。一般来说&#xff0c;SEO是一个长期的过程&#xff0c;而不是一夜之间见效的事情。e6zzseo&#xff08;e6zzseo的博客_CSDN博客-seo领域博主…