⑴MindSpore功能强大专业实用,是最佳匹配昇腾AI处理器算力的全场景深度学习框架,是专门为数据科学家和算法工程师提供设计友好运行高效的开发体验而设计的去通用深度信息开发框架,同时该平台内置有专业丰富且操作详细的使用教程,可帮助用户快速熟练安装和使用该框架;MindSpore有效推动人工智能软硬件应用生态繁荣发展,为用户提供了友好的设计和高效的执行,旨在提升数据科学家和算法工程师的开发体验,并为Ascend
⑵AI处理器提供原生支持,以及软硬件协同优化,感兴趣的用户赶快下载吧。
⑶+转换数据集为MindRecord
⑷+迁移第三方框架训练脚本
⑸+实现高阶自动微分
⑹+使用PyNative模式调试
⑺+借助R图进行调试
⑻+自定义调试信息
⑼+使用可视化组件MindInsight
⑽+应用自动数据增强
⑾+训练时验证模型
⑿+分布式并行训练
⒀+使能自动混合精度
⒁+应用梯度累积算法
⒂+应用单节点数据缓存
⒃+应用感知量化训练
⒄+使用NAD算法提升模型安全性
⒅+应用差分隐私机制保护用户隐私
⒆+使用 fuzz testing模块测试模型安全性
⒇+使用成员推理测试模型安全性
⒈+在云上使用 MindSpore
⒉帮助开发者实现网络自动切分,只需串行表达就能实现并行训练,降低门槛,简化开发流程。
⒊使用该深度学习ai人工智能框架的优势之灵活的调试模式
⒋具备训练过程静态执行和动态调试能力,开发者通过变更一行代码即可切换模式,快速在线定位问题。
⒌使用该深度学习ai人工智能框架的优势之充分发挥硬件潜能
⒍充分发挥硬件潜能
⒎最佳匹配昇腾处理器,最大程度地发挥硬件能力,帮助开发者缩短训练时间,提升推理性能。
⒏使用该深度学习ai人工智能框架的优势之全场景快速部署
⒐支持云边缘和手机上的快速部署,实现更好的资源利用和隐私保护,让开发者专注于AI应用的创造。
⒑pip方式安装MindSpore Ascend 版本
⒒pip方式安装MindSpore Ascend
⒓版本确认系统环境信息安装MindSpore配置环境变量验证是否成功安装升级MindSpore版本安装MindInsight安装MindArmour安装MindSpore
⒔Hub安装MindSpore Serving
⒕本文档介绍如何在Ascend 环境的Linux系统上,使用pip方式快速安装MindSpore。
⒖确认系统环境信息
⒗确认安装Ubuntu ./CentOS ./EulerOS .是位操作系统。
⒘确认安装正确G 版本,Ubuntu ./EulerOS .用户,G>=..;CentOS .用户
⒙G>=..。
⒚确认安装gmp ..版本。
⒛确认安装Python ..版本。
①如果未安装或者已安装其他版本的Python,可从官网或者华为云下载Python ..版本 位,进行安装。
②确认安装Ascend AI处理器软件配套包(Atlas Data Center Solution VRCT。
③确认当前用户有权限访问Ascend
④AI处理器配套软件包的安装路径/usr/local/Ascend,若无权限,需要root用户将当前用户添加到/usr/local/Ascend所在的用户组,具体配置请详见配套软件包的说明文档。
⑤安装Ascend AI处理器配套软件包提供的whl包,whl包随配套软件包发布,升级配套软件包之后需要重新安装。
⑥安装MindSpore
⑦在联网状态下,安装whl包时会自动下载MindSpore安装包的依赖项(依赖项详情参见requirements.txt,其余情况需自行安装。
⑧{version}表示MindSpore版本号,例如安装..版本MindSpore时,{version}应写为..。
⑨{arch}表示系统架构,例如使用的Linux系统是x架构位时,{arch}应写为x_。如果系统是ARM架构位,则写为aarch。
⑩{system}表示系统版本,例如使用的欧拉系统ARM架构,{system}应写为euleros_aarch,目前Ascend版本可支持以下系统euleros_aarch/euleros_x/centos_aarch/centos_x/ubuntu_aarch/ubuntu_x。
Ⅰ如果Ascend
ⅡAI处理器配套软件包没有安装在默认路径,安装好MindSpore之后,需要导出Runtime相关环境变量,下述命令中LOCAL_ASCEND=/usr/local/Ascend的/usr/local/Ascend表示配套软件包的安装路径,需注意将其改为配套软件包的实际安装路径。
Ⅲ验证是否成功安装
Ⅳ说明MindSpore安装成功了。
Ⅴ升级MindSpore版本
Ⅵ当需要升级MindSpore版本时,可执行如下命令:
Ⅶ下面我们通过一个实际样例,带领大家体验MindSpore基础的功能,对于一般的用户而言,完成整个样例实践会持续~分钟。
Ⅷ本例子会实现一个简单的图片分类的功能,整体流程如下:
Ⅸ处理需要的数据集,这里使用了MNIST数据集。
Ⅹ定义一个网络,这里我们使用Le网络。
㈠定义损失函数和优化器。
㈡加载数据集并进行训练,训练完成后,查看结果及保存模型文件。
㈢加载保存的模型,进行推理。
㈣验证模型,加载测试数据集和训练后的模型,验证结果精度。
㈤你可以在这里找到完整可运行的样例代码:
㈥这是简单基础的应用流程,其他高级复杂的应用可以基于这个基本流程进行扩展。
㈦准备环节在动手进行实践之前,确保,你已经正确安装了MindSpore。如果没有,可以通过MindSpore安装页面将MindSpore安装在你的电脑当中。
㈧同时希望你拥有Python编码基础和概率矩阵等基础数学知识。
㈨那么接下来,就开始MindSpore的体验之旅吧。
㈩下载数据集我们示例中用到的MNIST数据集是由类*的灰度图片组成,训练数据集包含张图片,测试数据集包含张图片。
MNIST数据集下载页面:页面提供个数据集下载链接,其中前个文件是训练数据需要,后个文件是测试结果需要。
将数据集下载并解压到本地路径下,这里将数据集解压分别存放到工作区的路径下。
为了方便样例使用,我们在样例脚本中添加了自动下载数据集的功能。
导入Python库&模块在使用前,需要导入需要的Python库。
目前使用到os库,为方便理解,其他需要的库,我们在具体使用到时再说明。
import os
详细的MindSpore的模块说明,可以在MindSpore API页面中搜索查询。
配置运行信息在正式编写代码前,需要了解MindSpore运行所需要的硬件后端等基本信息。
可以通过context.set_context来配置运行需要的信息,譬如运行模式后端信息硬件等信息。
导入context模块,配置运行需要的信息。
在样例中我们配置样例运行使用图模式。根据实际情况配置硬件信息,譬如代码运行在Ascend
AI处理器上,则--device_target选择Ascend,代码运行在CPUGPU同理。详细参数说明,请参见context.set_context接口说明。
数据处理数据集对于训练非常重要,好的数据集可以有效提高训练精度和效率。在加载数据集前,我们通常会对数据集进行一些处理。
定义数据集及数据操作我们定义一个函数create_dataset来创建数据集。在这个函数中,我们定义好需要进行的数据增强和处理操作:
定义进行数据增强和处理所需要的一些参数。
根据参数,生成对应的数据增强操作。
使用map映射函数,将数据操作应用到数据集。
对生成的数据集进行处理。
batch_size:每组包含的数据个数,现设置每组包含个数据。
repeat_size:数据集复制的数量。
先进行shufflebatch操作,再进行repeat操作,这样能保证个epoch内数据不重复。
MindSpore支持进行多种数据处理和增强的操作,各种操作往往组合使用,具体可以参考数据处理和与数据增强章节。
定义网络我们选择相对简单的Le网络。Le网络不包括输入层的情况下,共有层:个卷积层个下采样层(池化层个全连接层。每层都包含不同数量的训练参数,如下图所示:
更多的Le网络的介绍不在此赘述,希望详细了解Le网络,可以查询
我们对全连接层以及卷积层采用Normal进行参数初始化。
MindSpore支持TruncatedNormalNormalUniform等多种参数初始化方法,默认采用Normal。具体可以参考MindSpore
API的mindspore.mon.initializer模块说明。
使用MindSpore定义神经网络需要继承mindspore.nn.Cell。Cell是所有神经网络(Convd等的基类。
神经网络的各层需要预先在__init__方法中定义,然后通过定义construct方法来完成神经网络的前向构造。按照Le的网络结构,定义网络各层如下:
定义损失函数及优化器基本概念在进行定义之前,先简单介绍损失函数及优化器的概念。
损失函数:又叫目标函数,用于衡量预测值与实际值差异的程度。深度学习通过不停地迭代来缩小损失函数的值。定义一个好的损失函数,可以有效提高模型的性能。
优化器:用于最小化损失函数,从而在训练过程中改进模型。
定义了损失函数后,可以得到损失函数关于权重的梯度。梯度用于指示优化器优化权重的方向,以提高模型性能。
定义损失函数MindSpore支持的损失函数有SoftmaxCrossEntropyWithLogitsLLossMSELoss等。这里使用SoftmaxCrossEntropyWithLogits损失函数。
在__main__函数中调用定义好的损失函数:
定义优化器MindSpore支持的优化器有AdamAdamWeightDecayMomentum等。
这里使用流行的Momentum优化器。
训练网络配置模型保存MindSpore提供了callback机制,可以在训练过程中执行自定义逻辑,这里使用框架提供的ModelCheckpoint为例。
ModelCheckpoint可以保存网络模型和参数,以便进行后续的fine-tuning(微调操作。
配置训练网络通过MindSpore提供的model.train接口可以方便地进行网络的训练。LossMonitor可以监控训练过程中loss值的变化。
这里把train_epoch设置为,对数据集进行个迭代的训练。
其中, 在train_方法中,我们加载了之前下载的训练数据集,mnist_path是MNIST数据集路径。
运行并查看结果使用以下命令运行脚本:
le.py:为你根据教程编写的脚本文件。
--device_target CPU:指定运行硬件平台,参数为CPUGPU或者Ascend,根据你的实际运行硬件平台来指定。
训练过程中会打印loss值,类似下图。loss值会波动,但总体来说loss值会逐步减小,精度逐步提高。每个人运行的loss值有一定随机性,不一定完全相同。
训练过程中loss打印示例如下:
训练完后,即保存的模型文件,示例如下:
checkpoint_le-_.ckpt:指保存的模型参数文件。名称具体含义checkpoint_网络名称-第几个epoch_第几个step.ckpt。
验证模型在得到模型文件后,通过模型运行测试数据集得到的结果,验证模型的泛化能力。
使用model.eval接口读入测试数据集。
使用保存后的模型参数进行推理。
其中, load_checkpoint:通过该接口加载CheckPoint模型参数文件,返回一个参数字典。
checkpoint_le-_.ckpt:之前保存的CheckPoint模型文件名称。
load_param_into_:通过该接口把参数加载到网络中。
使用运行命令,运行你的代码脚本。
le.py:为你根据教程编写的脚本文件。
--device_target CPU:指定运行硬件平台,参数为CPUGPU或者Ascend,根据你的实际运行硬件平台来指定。
运行结果示例如下:
可以在打印信息中看出模型精度数据,示例中精度数据达到.%,模型质量良好。随着网络迭代次数train_epoch增加,模型精度会进一步提高。
面向不同程度开发者提供多种场景下的使用教程,通过细分步骤指导如何使用MindSpore
面向新手的通用场景教程之快速入门
通过一个实际样例实现手写数字的识别,带领大家体验MindSpore基础的功能,一般来说,完成整个样例实践会持续~分钟。
面向专家的通用场景教程之图像分类
结合CIFAR-数据集,讲解MindSpore如何处理图像分类任务。
面向专家的通用场景教程之情感分析
构建一个自然语言处理的模型,通过文本分析和推理实现情感分析,完成对文本的情感分类。
开发者体验(昇腾环境
在云上ModelArts AI开发平台抢鲜体验昇腾资源
MindSpore社区期待各位开发者的加入
MindSpore诚挚邀请您加入华为沃土高校教研AI扶持计划。