当前位置:   article > 正文

MindSpore零基础学习笔记_mindspore学习笔记

mindspore学习笔记
  • 快速入门:准备数据-创建模型-损失与优化-训练与推理
  • 张量TENSOR:初始化-属性-索引-转换
  • 数据处理:整体流程-加载-迭代-处理与增强
  • 创建网络:定义模型-模型参数-构建网络
  • 自动微分:求导-梯度缩放-停止计算
  • 模型训练:超参-损失函数-优化器-训练
  • 保存与加载:模型保存-加载模型-迁移学习
  • 推理与部署:模型导出-转换格式-部署与体验
    任务:1.熟悉MindSpore的语法结构
    2.熟悉MindSpore从构建数据集,网络到训练的全流程

1.快速入门

mindmindspore的整体框架
MindSpore的整个处理流程
Mindspre处理流程
理解(输入数据,对数据进行调优,调优过程中需要安全机制保护,mindspore的模型存放在ModelZoo的模型库,一系列开发套件和告诫扩展库。预训练模型进行端云统一IR)

MindSpore全场景AI计算框架API
一些列API

1.快速入门
准备数据->创建网络模型->定义损失器与优化器->训练与推理
用简单的LENET5网络模型和MindSpore vision这个开发套件实现深度学习里面最简单的分类任务
(MindSpore Vision套件提供了用于下载并处理MINIST数据集的Mnist模块)
通过MindSpore Vision这个套件提供的数据集接口来去下载Minist数据集
在这里插入图片描述
LeNet共有七层,其中三个卷积层,两个采样层,三个全连接层。MindSpre Vision这个套件同样提供了一个最基础的Bachbone网络模型LeNet5,可以直接加载进来

接着需要定义损失函数和优化器(同样作为MindSpore nn层的算子,这里面用的是交叉熵,优化器用的是momentum)

训练及保存模型
在训练之前希望能监控训练中间结果或者把中间结果保存下来,以便用于后续用于finetune微调,迁移学习,或者下游任务等各种功能。

在执行网络模型之前需要把刚才定义到的参数,损失函数和优化器都扔进去models接口里面,接着调用model.train去执行

把定义的数据集扔进神经网络模型里面

训练完后需要加载网络模型,把网络模型参数赋值给网络模型

验证模型

2.张量

初始化-属性-索引-转换
区分数据格式
张量的概念:
张量有形状,下面有几个相关术语
形状:张量的每个轴的长度,即元素数量
秩:张量的轴数,标量的秩为0,向量的秩为1,矩阵的制为2
轴:张量的一个特殊维度
大小:张量的总项数,即乘积形状向量

张量
四维

Tersor 在MIndSpore中是一个什么样的作用呢?
MindSpore中所有的数学运算和操作都是基于Tensor。
张量的创建方式有很多种,构造张量时,支持传入Tensor,float,int,bool,tuple,list,和NumPy.array类型。
可以根据数据直接生成。可以根据数据创建张量,数据类型可以设置或者通过框架自动推断。
创建

用构造器构造张量
使用Init初始化构造
为什么还需要初始化呢?张量是个高维数据,初始化做的好可能会有助于神经网络模型的学习。
MindSpore提供了很多初始化张量以供选择
继续另一个张量的属性,形成新的张量
使用OnesLinke算子形成新的张量
张量属性
张量索引
张量的运算
Tensor与NumPy转换
Tensor可以与NumPy进行互相转换。

Tensor转换为NumPy
使用asnumpy()将Tensor变量转换为NumPy变换

转换

数据处理(整体流程-加载-迭代-处理与增强)

输入Tensor
数据处理
输入到神经网络模型
数据的加载
数据的迭代
数据的处理与增强
数据处理的流程
第一部分
sampler用于采样将数据加载进内存

输入到Transform
会对数据处理进行一系列的变换

Train
就会把我们的数据输入到我们的网络模型里面
运行代码下载数据集
迭代数据集
用户可以用create_dict_iterator接口创建数据迭代器,迭代访问数据,访问数据类型默认为Tensor!,这设置output_numpy-True,访问的数据类型为NumPy(要把数据打乱,防止过拟合)

创建网络:定义模型-模型参数-构建网络

两个卷积层
C代表卷积层,S代表采样层,F代表全连接层
过程
6个通道经过卷积之后变成16个,1655经过Full connection的操作把神经网络展开变成张量变成120的张量
通过MindSpore去搭建神经网络模型
像搭积木一样一行行代码堆叠起来

‘算子和网络层数
卷积算子在通讯中会经常用到,它其实是滤波操作
假设有一个图片通过卷积核不断的在图片上面做一个滑窗的动作

激活层
加入nn.ReLu层,给网络中加入非线性激活函数,帮助神经网络学习各种复杂的特征

快速搭建网络模型

自动微分:求导-梯度缩放-停止计算

对数据进行求导
放大梯度值
停止计算微分

模型训练:超参-损失函数-优化器-训练

设置网络模型的超参
定义损失函数
定义优化器
训练
函数
损失函数
计算损失函数的目的就是为了让我们的损失值尽可能的小

优化器函数
模型训练一般分为四个步骤
1.构建数据集
2.定义神经网络
3.定义超参,损失函数及优化器。
4.输入训练轮次和数据集进行训练
代码

保存与加载

保存网络模型
加载网络模型
迁移学习
模型保存

推理与部署:模型导出-转换格式-部署与体验

网络模型的导出
转换格式
部署与体验MindSpore

部署过程
MindSpore自带端云功能

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/神奇cpp/article/detail/843489
推荐阅读
相关标签
  

闽ICP备14008679号