下载吧 其他软件

分类分类

MindSpore(深度学习框架)

MindSpore(深度学习框架)

v1.1.0 官方版

大小:226 MB 更新:2024/12/23

类别:其他软件系统:WinAll

立即下载

  MindSpore功能强大、专业实用,是最佳匹配昇腾AI处理器算力的全场景深度学习框架,是专门为数据科学家和算法工程师提供设计友好、运行高效的开发体验而设计的去通用深度信息开发框架,同时该平台内置有专业丰富且操作详细的使用教程,可帮助用户快速熟练安装和使用该框架;MindSpore有效推动人工智能软硬件应用生态繁荣发展,为用户提供了友好的设计和高效的执行,旨在提升数据科学家和算法工程师的开发体验,并为Ascend AI处理器提供原生支持,以及软硬件协同优化,感兴趣的用户赶快下载吧。

MindSpore(深度学习框架)

软件功能

  处理数据

  +转换数据集为MindRecord

  +优化数据处理

  构建网络

  +自定义算子

  +迁移第三方框架训练脚本

  +深度概率编程

  +实现高阶自动微分

  调试网络

  +使用PyNative模式调试

  +借助R图进行调试

  +自定义调试信息

  +使用可视化组件MindInsight

  +应用自动数据增强

  +训练时验证模型

  优化训练性能

  +分布式并行训练

  +使能自动混合精度

  +使能图算融合

  +应用梯度累积算法

  +应用单节点数据缓存

  压缩模型

  +应用感知量化训练

  模型安全和隐私

  +使用NAD算法提升模型安全性

  +应用差分隐私机制保护用户隐私

  +使用 fuzz testing模块测试模型安全性

  +使用成员推理测试模型安全性

  应用实践

  +机器视觉

  +自然语言处理

  +高性能计算

  +在云上使用 MindSpore

软件特色

  简单的开发体验

  帮助开发者实现网络自动切分,只需串行表达就能实现并行训练,降低门槛,简化开发流程。

  使用该深度学习、ai、人工智能框架的优势之灵活的调试模式

  灵活的调试模式

  具备训练过程静态执行和动态调试能力,开发者通过变更一行代码即可切换模式,快速在线定位问题。

  使用该深度学习、ai、人工智能框架的优势之充分发挥硬件潜能

  充分发挥硬件潜能

  最佳匹配昇腾处理器,最大程度地发挥硬件能力,帮助开发者缩短训练时间,提升推理性能。

  使用该深度学习、ai、人工智能框架的优势之全场景快速部署

  全场景快速部署

  支持云、边缘和手机上的快速部署,实现更好的资源利用和隐私保护,让开发者专注于AI应用的创造。

安装方法

  pip方式安装MindSpore Ascend 910版本

  pip方式安装MindSpore Ascend 910版本确认系统环境信息安装MindSpore配置环境变量验证是否成功安装升级MindSpore版本安装MindInsight安装MindArmour安装MindSpore Hub安装MindSpore Serving

  本文档介绍如何在Ascend 910环境的Linux系统上,使用pip方式快速安装MindSpore。

  确认系统环境信息

  确认安装Ubuntu 18.04/CentOS 8.2/EulerOS 2.8是64位操作系统。

  确认安装正确GCC 版本,Ubuntu 18.04/EulerOS 2.8用户,GCC>=7.3.0;CentOS 8.2用户 GCC>=8.3.1。

  确认安装gmp 6.1.2版本。

  确认安装Python 3.7.5版本。

  如果未安装或者已安装其他版本的Python,可从官网或者华为云下载Python 3.7.5版本 64位,进行安装。

  确认安装Ascend 910 AI处理器软件配套包(Atlas Data Center Solution V100R020C20T600)。

  确认当前用户有权限访问Ascend 910 AI处理器配套软件包的安装路径/usr/local/Ascend,若无权限,需要root用户将当前用户添加到/usr/local/Ascend所在的用户组,具体配置请详见配套软件包的说明文档。

  安装Ascend 910 AI处理器配套软件包提供的whl包,whl包随配套软件包发布,升级配套软件包之后需要重新安装。

MindSpore(深度学习框架)

  安装MindSpore

MindSpore(深度学习框架)

  其中:

  在联网状态下,安装whl包时会自动下载MindSpore安装包的依赖项(依赖项详情参见requirements.txt),其余情况需自行安装。

  {version}表示MindSpore版本号,例如安装1.1.0版本MindSpore时,{version}应写为1.1.0。

  {arch}表示系统架构,例如使用的Linux系统是x86架构64位时,{arch}应写为x86_64。如果系统是ARM架构64位,则写为aarch64。

  {system}表示系统版本,例如使用的欧拉系统ARM架构,{system}应写为euleros_aarch64,目前Ascend版本可支持以下系统euleros_aarch64/euleros_x86/centos_aarch64/centos_x86/ubuntu_aarch64/ubuntu_x86。

  配置环境变量

  如果Ascend 910 AI处理器配套软件包没有安装在默认路径,安装好MindSpore之后,需要导出Runtime相关环境变量,下述命令中LOCAL_ASCEND=/usr/local/Ascend的/usr/local/Ascend表示配套软件包的安装路径,需注意将其改为配套软件包的实际安装路径。

MindSpore(深度学习框架)

  验证是否成功安装

MindSpore(深度学习框架)

  如果输出:

MindSpore(深度学习框架)

  说明MindSpore安装成功了。

  升级MindSpore版本

  当需要升级MindSpore版本时,可执行如下命令:

MindSpore(深度学习框架)

官方教程

  下面我们通过一个实际样例,带领大家体验MindSpore基础的功能,对于一般的用户而言,完成整个样例实践会持续20~30分钟。

  本例子会实现一个简单的图片分类的功能,整体流程如下:

  处理需要的数据集,这里使用了MNIST数据集。

  定义一个网络,这里我们使用LeNet网络。

  定义损失函数和优化器。

  加载数据集并进行训练,训练完成后,查看结果及保存模型文件。

  加载保存的模型,进行推理。

  验证模型,加载测试数据集和训练后的模型,验证结果精度。

  你可以在这里找到完整可运行的样例代码:https://gitee.com/mindspore/docs/tree/r1.1/tutorials/tutorial_code/lenet 。

  这是简单、基础的应用流程,其他高级、复杂的应用可以基于这个基本流程进行扩展。

  准备环节在动手进行实践之前,确保,你已经正确安装了MindSpore。如果没有,可以通过MindSpore安装页面将MindSpore安装在你的电脑当中。

  同时希望你拥有Python编码基础和概率、矩阵等基础数学知识。

  那么接下来,就开始MindSpore的体验之旅吧。

  下载数据集我们示例中用到的MNIST数据集是由10类28*28的灰度图片组成,训练数据集包含60000张图片,测试数据集包含10000张图片。

  MNIST数据集下载页面:http://yann.lecun.com/exdb/mnist/。页面提供4个数据集下载链接,其中前2个文件是训练数据需要,后2个文件是测试结果需要。

  将数据集下载并解压到本地路径下,这里将数据集解压分别存放到工作区的./MNIST_Data/train、./MNIST_Data/test路径下。

  目录结构如下:

MindSpore(深度学习框架)

  为了方便样例使用,我们在样例脚本中添加了自动下载数据集的功能。

  导入Python库&模块在使用前,需要导入需要的Python库。

  目前使用到os库,为方便理解,其他需要的库,我们在具体使用到时再说明。

  import os

  详细的MindSpore的模块说明,可以在MindSpore API页面中搜索查询。

  配置运行信息在正式编写代码前,需要了解MindSpore运行所需要的硬件、后端等基本信息。

  可以通过context.set_context来配置运行需要的信息,譬如运行模式、后端信息、硬件等信息。

  导入context模块,配置运行需要的信息。

MindSpore(深度学习框架)

  在样例中我们配置样例运行使用图模式。根据实际情况配置硬件信息,譬如代码运行在Ascend AI处理器上,则--device_target选择Ascend,代码运行在CPU、GPU同理。详细参数说明,请参见context.set_context接口说明。

  数据处理数据集对于训练非常重要,好的数据集可以有效提高训练精度和效率。在加载数据集前,我们通常会对数据集进行一些处理。

  定义数据集及数据操作我们定义一个函数create_dataset来创建数据集。在这个函数中,我们定义好需要进行的数据增强和处理操作:

  定义数据集。

  定义进行数据增强和处理所需要的一些参数。

  根据参数,生成对应的数据增强操作。

  使用map映射函数,将数据操作应用到数据集。

  对生成的数据集进行处理。

MindSpore(深度学习框架)
MindSpore(深度学习框架)

  其中,

  batch_size:每组包含的数据个数,现设置每组包含32个数据。

  repeat_size:数据集复制的数量。

  先进行shuffle、batch操作,再进行repeat操作,这样能保证1个epoch内数据不重复。

  MindSpore支持进行多种数据处理和增强的操作,各种操作往往组合使用,具体可以参考数据处理和与数据增强章节。

  定义网络我们选择相对简单的LeNet网络。LeNet网络不包括输入层的情况下,共有7层:2个卷积层、2个下采样层(池化层)、3个全连接层。每层都包含不同数量的训练参数,如下图所示:

MindSpore(深度学习框架)

  更多的LeNet网络的介绍不在此赘述,希望详细了解LeNet网络,可以查询http://yann.lecun.com/exdb/lenet/。

  我们对全连接层以及卷积层采用Normal进行参数初始化。

  MindSpore支持TruncatedNormal、Normal、Uniform等多种参数初始化方法,默认采用Normal。具体可以参考MindSpore API的mindspore.common.initializer模块说明。

  使用MindSpore定义神经网络需要继承mindspore.nn.Cell。Cell是所有神经网络(Conv2d等)的基类。

  神经网络的各层需要预先在__init__方法中定义,然后通过定义construct方法来完成神经网络的前向构造。按照LeNet的网络结构,定义网络各层如下:

MindSpore(深度学习框架)
MindSpore(深度学习框架)

  定义损失函数及优化器基本概念在进行定义之前,先简单介绍损失函数及优化器的概念。

  损失函数:又叫目标函数,用于衡量预测值与实际值差异的程度。深度学习通过不停地迭代来缩小损失函数的值。定义一个好的损失函数,可以有效提高模型的性能。

  优化器:用于最小化损失函数,从而在训练过程中改进模型。

  定义了损失函数后,可以得到损失函数关于权重的梯度。梯度用于指示优化器优化权重的方向,以提高模型性能。

  定义损失函数MindSpore支持的损失函数有SoftmaxCrossEntropyWithLogits、L1Loss、MSELoss等。这里使用SoftmaxCrossEntropyWithLogits损失函数。

MindSpore(深度学习框架)

  在__main__函数中调用定义好的损失函数:

MindSpore(深度学习框架)

  定义优化器MindSpore支持的优化器有Adam、AdamWeightDecay、Momentum等。

  这里使用流行的Momentum优化器。

MindSpore(深度学习框架)

  训练网络配置模型保存MindSpore提供了callback机制,可以在训练过程中执行自定义逻辑,这里使用框架提供的ModelCheckpoint为例。 ModelCheckpoint可以保存网络模型和参数,以便进行后续的fine-tuning(微调)操作。

MindSpore(深度学习框架)

  配置训练网络通过MindSpore提供的model.train接口可以方便地进行网络的训练。LossMonitor可以监控训练过程中loss值的变化。 这里把train_epoch设置为1,对数据集进行1个迭代的训练。

MindSpore(深度学习框架)

  其中, 在train_net方法中,我们加载了之前下载的训练数据集,mnist_path是MNIST数据集路径。

  运行并查看结果使用以下命令运行脚本:

MindSpore(深度学习框架)

  其中,

  lenet.py:为你根据教程编写的脚本文件。

  --device_target CPU:指定运行硬件平台,参数为CPU、GPU或者Ascend,根据你的实际运行硬件平台来指定。

  训练过程中会打印loss值,类似下图。loss值会波动,但总体来说loss值会逐步减小,精度逐步提高。每个人运行的loss值有一定随机性,不一定完全相同。 训练过程中loss打印示例如下:

MindSpore(深度学习框架)

  训练完后,即保存的模型文件,示例如下:

MindSpore(深度学习框架)

  其中,

  checkpoint_lenet-1_1875.ckpt:指保存的模型参数文件。名称具体含义checkpoint_网络名称-第几个epoch_第几个step.ckpt。

  验证模型在得到模型文件后,通过模型运行测试数据集得到的结果,验证模型的泛化能力。

  使用model.eval接口读入测试数据集。

  使用保存后的模型参数进行推理。

MindSpore(深度学习框架)

  其中, load_checkpoint:通过该接口加载CheckPoint模型参数文件,返回一个参数字典。

  checkpoint_lenet-1_1875.ckpt:之前保存的CheckPoint模型文件名称。

  load_param_into_net:通过该接口把参数加载到网络中。

  使用运行命令,运行你的代码脚本。

MindSpore(深度学习框架)

  其中,

  lenet.py:为你根据教程编写的脚本文件。

  --device_target CPU:指定运行硬件平台,参数为CPU、GPU或者Ascend,根据你的实际运行硬件平台来指定。

  运行结果示例如下:

MindSpore(深度学习框架)

  可以在打印信息中看出模型精度数据,示例中精度数据达到96.6%,模型质量良好。随着网络迭代次数train_epoch增加,模型精度会进一步提高。

应用场景

  通用场景教程

  面向不同程度开发者提供多种场景下的使用教程,通过细分步骤指导如何使用MindSpore

  面向新手的通用场景教程之快速入门

  快速入门

  通过一个实际样例实现手写数字的识别,带领大家体验MindSpore基础的功能,一般来说,完成整个样例实践会持续20~30分钟。

  面向专家的通用场景教程之图像分类

  图像分类

  结合CIFAR-10数据集,讲解MindSpore如何处理图像分类任务。

  面向专家的通用场景教程之情感分析

  情感分析

  构建一个自然语言处理的模型,通过文本分析和推理实现情感分析,完成对文本的情感分类。

  生态合作

  开发者体验(昇腾环境)

  在云上ModelArts AI开发平台抢鲜体验昇腾资源

  开源合作

  MindSpore社区期待各位开发者的加入

  高校合作

  MindSpore诚挚邀请您加入华为沃土高校教研AI扶持计划。

相关文章
  • 最新排行
  • 最热排行
  • 评分最高
其他软件排行榜

点击查看更多

点击查看更多

点击查看更多