【MindSpore】模型构建与参数操作笔记

  • 写在最前面
  • 一、MindSpore 模型构建与参数操作笔记
  • 1. 构建网络模型的关键层
  • 2. 构建 Tensor 的方式
  • 3. 查看网络模型结构与参数
  • 4. 加载模型权重
  • 基础介绍 笔记
  • 昇思 MindSpore 和华为昇腾 AI 全栈基础介绍
  • 昇思 MindSpore 概述
  • 昇思 MindSpore 总体架构
  • 昇思 MindSpore 的执行流程
  • 昇思 MindSpore 的设计理念
  • API 层次结构
  • 华为昇腾 AI 全栈介绍
  • 昇腾 AI 全栈组成
  • 参与社区



【MindSpore】模型构建与参数操作笔记_笔记


🌈你好呀!我是 是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】模型构建与参数操作笔记_开源_02

昇思 MindSpore 总体架构

MindSpore 的架构分为多个模块:

  • ModelZoo(模型库):提供可用的深度学习模型,支持开发者贡献和扩展模型网络。
  • Extend(扩展库):支持新领域拓展,如图神经网络(GNN)、强化学习等领域开发。
  • Science(科学计算):科学计算行业套件,融合深度学习与科学计算,支持电磁仿真、药物分子仿真等应用。
  • Expression(统一 API):基于 Python 的编程接口,同时未来计划支持更多编程语言接口。
  • Data(数据处理层):提供高效的数据处理和优化功能,包括常用数据集加载与并行处理。
  • Compiler(AI 编译器):支持硬件无关优化(如自动微分、类型推导)、硬件相关优化(如自动并行)及推理优化(如量化、剪枝)。
  • Runtime(运行时系统):覆盖云、端和轻量级 IoT 的全场景运行时。
  • Insight(调试与优化工具):可视化调试和优化训练过程,便于发现问题并提升性能。
  • Armour(安全增强库):提供对抗鲁棒性、差分隐私训练、数据漂移检测等安全功能。
昇思 MindSpore 的执行流程

【MindSpore】模型构建与参数操作笔记_MindSpore_03

  • 数据处理:通过 MindSpore Data 模块完成数据采样、迭代和转换。
  • 调试与优化:通过 Insight 模块可视化训练过程,方便调试模型性能和精度。
  • 安全保护:MindSpore Armour 模块提供训练阶段的安全机制,如差分隐私和模型安全测试。
  • 模型开发与部署:支持将模型导出到 MindIR 格式,适配不同硬件平台,实现一次训练,多场景部署。
昇思 MindSpore 的设计理念
  1. 支持全场景协同:统一接口,灵活适配端、边、云的部署需求。
  2. 简化 AI 编程:采用 Python 编程范式,使神经网络开发更直观、易用。
  3. 动态图与静态图统一:提供统一的编码方式,用户无需编写多套代码,仅通过简单设置即可切换动态图或静态图模式。
  4. 函数式可微分编程:通过自动微分机制支持复杂梯度计算,简化模型算法开发。
  5. 统一单机与分布式训练:开发者仅需少量改动即可实现分布式训练,大幅降低复杂度。
API 层次结构

【MindSpore】模型构建与参数操作笔记_笔记_04

MindSpore 提供三层 API:

  1. High-Level Python API:支持整网训练、推理管理及调试优化,例如通过 Model 接口控制训练流程。
  2. Medium-Level Python API:封装基础模块(如网络层、优化器、损失函数等),用于灵活构建神经网络。
  3. Low-Level Python API:支持张量定义、基础算子、自动微分等,适合实现自定义模型计算逻辑。

华为昇腾 AI 全栈介绍

【MindSpore】模型构建与参数操作笔记_开源_05

昇腾 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 论坛:提供开发者交流平台,支持入门者与高级用户共同成长。