赞
踩
mind
MindSpore的整个处理流程
理解(输入数据,对数据进行调优,调优过程中需要安全机制保护,mindspore的模型存放在ModelZoo的模型库,一系列开发套件和告诫扩展库。预训练模型进行端云统一IR)
MindSpore全场景AI计算框架API
1.快速入门
准备数据->创建网络模型->定义损失器与优化器->训练与推理
用简单的LENET5网络模型和MindSpore vision这个开发套件实现深度学习里面最简单的分类任务
(MindSpore Vision套件提供了用于下载并处理MINIST数据集的Mnist模块)
通过MindSpore Vision这个套件提供的数据集接口来去下载Minist数据集
LeNet共有七层,其中三个卷积层,两个采样层,三个全连接层。MindSpre Vision这个套件同样提供了一个最基础的Bachbone网络模型LeNet5,可以直接加载进来
接着需要定义损失函数和优化器(同样作为MindSpore nn层的算子,这里面用的是交叉熵,优化器用的是momentum)
训练及保存模型
在训练之前希望能监控训练中间结果或者把中间结果保存下来,以便用于后续用于finetune微调,迁移学习,或者下游任务等各种功能。
在执行网络模型之前需要把刚才定义到的参数,损失函数和优化器都扔进去models接口里面,接着调用model.train去执行
把定义的数据集扔进神经网络模型里面
训练完后需要加载网络模型,把网络模型参数赋值给网络模型
验证模型
初始化-属性-索引-转换
张量的概念:
张量有形状,下面有几个相关术语
形状:张量的每个轴的长度,即元素数量
秩:张量的轴数,标量的秩为0,向量的秩为1,矩阵的制为2
轴:张量的一个特殊维度
大小:张量的总项数,即乘积形状向量
Tersor 在MIndSpore中是一个什么样的作用呢?
MindSpore中所有的数学运算和操作都是基于Tensor。
张量的创建方式有很多种,构造张量时,支持传入Tensor,float,int,bool,tuple,list,和NumPy.array类型。
可以根据数据直接生成。可以根据数据创建张量,数据类型可以设置或者通过框架自动推断。
用构造器构造张量
为什么还需要初始化呢?张量是个高维数据,初始化做的好可能会有助于神经网络模型的学习。
继续另一个张量的属性,形成新的张量
Tensor与NumPy转换
Tensor可以与NumPy进行互相转换。
Tensor转换为NumPy
使用asnumpy()将Tensor变量转换为NumPy变换
输入Tensor
数据处理
输入到神经网络模型
数据的加载
数据的迭代
数据的处理与增强
sampler用于采样将数据加载进内存
会对数据处理进行一系列的变换
就会把我们的数据输入到我们的网络模型里面
迭代数据集
用户可以用create_dict_iterator接口创建数据迭代器,迭代访问数据,访问数据类型默认为Tensor!,这设置output_numpy-True,访问的数据类型为NumPy(要把数据打乱,防止过拟合)
C代表卷积层,S代表采样层,F代表全连接层
6个通道经过卷积之后变成16个,1655经过Full connection的操作把神经网络展开变成张量变成120的张量
像搭积木一样一行行代码堆叠起来
‘算子和网络层数
卷积算子在通讯中会经常用到,它其实是滤波操作
假设有一个图片通过卷积核不断的在图片上面做一个滑窗的动作
激活层
加入nn.ReLu层,给网络中加入非线性激活函数,帮助神经网络学习各种复杂的特征
对数据进行求导
放大梯度值
停止计算微分
设置网络模型的超参
定义损失函数
定义优化器
训练
计算损失函数的目的就是为了让我们的损失值尽可能的小
模型训练一般分为四个步骤
1.构建数据集
2.定义神经网络
3.定义超参,损失函数及优化器。
4.输入训练轮次和数据集进行训练
保存网络模型
加载网络模型
迁移学习
网络模型的导出
转换格式
部署与体验MindSpore
MindSpore自带端云功能
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。