【MindSpore】模型构建与参数操作笔记
- 写在最前面
- 一、MindSpore 模型构建与参数操作笔记
- 1. 构建网络模型的关键层
- 2. 构建 Tensor 的方式
- 3. 查看网络模型结构与参数
- 4. 加载模型权重
- 基础介绍 笔记
- 昇思 MindSpore 和华为昇腾 AI 全栈基础介绍
- 昇思 MindSpore 概述
- 昇思 MindSpore 总体架构
- 昇思 MindSpore 的执行流程
- 昇思 MindSpore 的设计理念
- API 层次结构
- 华为昇腾 AI 全栈介绍
- 昇腾 AI 全栈组成
- 参与社区
🌈你好呀!我是 是Yu欸
🌌 2024每日百字篆刻时光,感谢你的陪伴与支持 ~
🚀 欢迎添加文末好友,共同成长!不定期掉落福利资讯(*^▽^*)
通过下述模块和方法,MindSpore 提供了便捷且灵活的工具,用于网络模型的构建、参数管理和权重加载,满足模型开发和优化的需求。
一、MindSpore 模型构建与参数操作笔记
增大 𝑁,通常会减少训练误差和测试误差之间的差距。这主要是因为更多的训练数据有助于减少模型的过拟合,从而提高泛化能力,使训练和测试误差更接近。
如果模型的容量(复杂度)不够高(欠拟合),训练数据的增加可能对误差差距的缩小效果不显著。
1. 构建网络模型的关键层
在 MindSpore 中,网络模型的构建主要依赖以下模块:
- nn 层:用于定义网络的核心组件,例如卷积层(
nn.Conv2d
)、全连接层(nn.Dense
)等,是构建网络的基础。 - ops 层:提供各种操作函数(如数学运算、激活函数等),在模型中用于实现更细粒度的操作或自定义功能。
2. 构建 Tensor 的方式
MindSpore 支持多种方式创建 Tensor,包括:
- 直接生成:通过
Tensor(data)
方法使用数据(如列表、标量)直接创建。 - 从 NumPy 数组生成:可以通过
Tensor(np_array)
方法从 NumPy 数组转换生成 Tensor。 - 使用初始化器生成:通过
mindspore.common.initializer
模块中的初始化器(如initializer
,Uniform
,Normal
)构造张量,常用于模型参数初始化。
3. 查看网络模型结构与参数
在 MindSpore 中,可以通过以下方法查看模型的网络结构和参数:
- 获取参数:使用
model.get_parameters()
方法获取模型的所有参数及其详细信息(如名称、形状等)。 - 查看网络结构:通过
print(model)
打印模型的网络结构,显示每层的名称、类型和参数数量。
4. 加载模型权重
加载和应用模型权重的标准流程包括:
- 加载权重文件:使用
load_checkpoint
函数加载.ckpt
文件,返回包含权重参数的字典:
param_dict = load_checkpoint("model.ckpt")
- 将权重加载到模型:使用
load_checkpoint_into_net
将权重参数字典加载到模型中:
load_checkpoint_into_net(net, param_dict)
基础介绍 笔记
https://www.mindspore.cn/tutorials/zh-CN/r1.7/beginner/introduction.html
昇思 MindSpore 和华为昇腾 AI 全栈基础介绍
昇思 MindSpore 概述
昇思 MindSpore 是一个全场景深度学习框架,旨在实现以下三大目标:
- 易开发:API 友好,调试难度低。
- 高效执行:提升计算效率、数据预处理效率以及分布式训练效率。
- 全场景覆盖:同时支持云、边缘和端侧场景,适配多种硬件环境。
昇思 MindSpore 总体架构
MindSpore 的架构分为多个模块:
- ModelZoo(模型库):提供可用的深度学习模型,支持开发者贡献和扩展模型网络。
- Extend(扩展库):支持新领域拓展,如图神经网络(GNN)、强化学习等领域开发。
- Science(科学计算):科学计算行业套件,融合深度学习与科学计算,支持电磁仿真、药物分子仿真等应用。
- Expression(统一 API):基于 Python 的编程接口,同时未来计划支持更多编程语言接口。
- Data(数据处理层):提供高效的数据处理和优化功能,包括常用数据集加载与并行处理。
- Compiler(AI 编译器):支持硬件无关优化(如自动微分、类型推导)、硬件相关优化(如自动并行)及推理优化(如量化、剪枝)。
- Runtime(运行时系统):覆盖云、端和轻量级 IoT 的全场景运行时。
- Insight(调试与优化工具):可视化调试和优化训练过程,便于发现问题并提升性能。
- Armour(安全增强库):提供对抗鲁棒性、差分隐私训练、数据漂移检测等安全功能。
昇思 MindSpore 的执行流程
- 数据处理:通过 MindSpore Data 模块完成数据采样、迭代和转换。
- 调试与优化:通过 Insight 模块可视化训练过程,方便调试模型性能和精度。
- 安全保护:MindSpore Armour 模块提供训练阶段的安全机制,如差分隐私和模型安全测试。
- 模型开发与部署:支持将模型导出到 MindIR 格式,适配不同硬件平台,实现一次训练,多场景部署。
昇思 MindSpore 的设计理念
- 支持全场景协同:统一接口,灵活适配端、边、云的部署需求。
- 简化 AI 编程:采用 Python 编程范式,使神经网络开发更直观、易用。
- 动态图与静态图统一:提供统一的编码方式,用户无需编写多套代码,仅通过简单设置即可切换动态图或静态图模式。
- 函数式可微分编程:通过自动微分机制支持复杂梯度计算,简化模型算法开发。
- 统一单机与分布式训练:开发者仅需少量改动即可实现分布式训练,大幅降低复杂度。
API 层次结构
MindSpore 提供三层 API:
- High-Level Python API:支持整网训练、推理管理及调试优化,例如通过
Model
接口控制训练流程。 - Medium-Level Python API:封装基础模块(如网络层、优化器、损失函数等),用于灵活构建神经网络。
- Low-Level Python API:支持张量定义、基础算子、自动微分等,适合实现自定义模型计算逻辑。
华为昇腾 AI 全栈介绍
昇腾 AI 全栈组成
华为昇腾 AI 全栈包含以下模块:
- Atlas 系列产品:提供 AI 训练卡、推理卡及训练服务器。
- CANN(异构计算架构):支持芯片驱动与计算加速。
- MindSpore(AI 框架):核心全场景 AI 框架。
- MindX SDK:提供行业解决方案的 SDK 支持。
- ModelArts(AI 开发平台):华为云端 AI 开发平台,支持完整 AI 开发流程。
- MindStudio:全流程开发工具链,提供 IDE 环境。
参与社区
欢迎开发者参与昇思 MindSpore 社区,了解最新进展并贡献代码:
- 昇思 MindSpore 官网:提供安装指南、教程文档、资源下载等。
- 代码托管平台:
- MindSpore Gitee:适合习惯国内平台的开发者,一键关注(Watch/Star/Fork)。
- MindSpore GitHub:面向国际开发者的代码镜像库。
- 昇思 MindSpore 论坛:提供开发者交流平台,支持入门者与高级用户共同成长。