相对应的视频教学可以在B站进行观看:
https://www.bilibili.com/video/BV1St4y1473r
一、MindSpore和MindInsight环境搭建和配置介绍
1 MindSpore简介
昇思MindSpore是一个全场景深度学习框架,旨在实现易开发、高效执行、全场景覆盖三大目标。
其中,易开发表现为API友好、调试难度低;高效执行包括计算效率、数据预处理效率和分布式训练效率;全场景则指框架同时支持云、边缘以及端侧场景。
昇思MindSpore总体架构如下图所示:
ModelZoo(模型库):ModelZoo提供可用的深度学习算法 络(ModelZoo地址)
Extend(扩展库):昇思MindSpore的领域扩展库,支持拓展新领域场景,如GNN/深度概率编程/强化学习等,期待更多开发者来一起贡献和构建。
Science(科学计算):MindScience是基于昇思MindSpore融合架构打造的科学计算行业套件,包含了业界领先的数据集、基础模型、预置高精度模型和前后处理工具,加速了科学行业应用开发(了解更多)。
Expression(全场景统一API):基于Python的前端表达与编程接口。同时未来计划陆续提供C/C++、华为自研编程语言前端-仓颉(目前还处于预研阶段)等第三方前端的对接工作,引入更多的第三方生态。
Data(数据处理层):提供高效的数据处理、常用数据集加载等功能和编程接口,支持用户灵活的定义处理注册和pipeline并行优化。
Compiler(AI编译器):图层的核心编译器,主要基于端云统一的MindIR实现三大功能,包括硬件无关的优化(类型推导、自动微分、表达式化简等)、硬件相关优化(自动并行、内存优化、图算融合、流水线执行等)、部署推理相关的优化(量化、剪枝等)。
Runtime(全场景运行时):昇思MindSpore的运行时系统,包含云侧主机侧运行时系统、端侧以及更小IoT的轻量化运行时系统。
Insight(可视化调试调优工具):昇思MindSpore的可视化调试调优工具,能够可视化地查看训练过程、优化模型性能、调试精度问题、解释推理结果(了解更多)。
Armour(安全增强库):面向企业级运用时,安全与隐私保护相关增强功能,如对抗鲁棒性、模型安全测试、差分隐私训练、隐私泄露风险评估、数据漂移检测等技术(了解更多)。
执行流程
有了对昇思MindSpore总体架构的了解后,我们可以看看各个模块之间的整体配合关系,具体如图所示:
昇思MindSpore作为全场景AI框架,所支持的有端(手机与IOT设备)、边(基站与路由设备)、云(服务器)场景的不同系列硬件,包括昇腾系列产品,英伟达NVIDIA系列产品,Arm系列的高通骁龙、华为麒麟的芯片等系列产品。
左边蓝色方框的是MindSpore主体框架,主要提供神经 络在训练、验证相关的基础API功能,另外还会默认提供自动微分、自动并行等功能。
蓝色方框往下是MindSpore Data模块,可以利用该模块进行数据预处理,包括数据采样、数据迭代、数据格式转换等不同的数据操作。在训练的过程会遇到很多调试调优的问题,因此有MindSpore Insight模块对loss曲线、算子执行情况、权重参数变量等调试调优相关的数据进行可视化,方便用户在训练过程中进行调试调优。
设计理念
层次结构
昇思MindSpore向用户提供了3个不同层次的API,支撑用户进行 络构建、整图执行、子图执行以及单算子执行,从低到高分别为Low-Level Python API、Medium-Level Python API以及High-Level Python API。
2 MindInsight简介
MindInsight是昇思MindSpore的可视化调试调优工具。利用MindInsight,您可以可视化地查看训练过程、优化模型性能、调试精度问题、解释推理结果。您还可以通过MindInsight提供的命令行方便地搜索超参,迁移模型。在MindInsight的帮助下,您可以更轻松地获得满意的模型精度和性能。
MindInsight包括以下内容:
3 环境安装配置
3.1 MindSpore环境安装配置
选择适合自己的环境条件后,获取命令并按照指南进行安装,或使用云平台创建和部署模型,安装细节参见链接:
https://www.mindspore.cn/install
验证是否安装成功
方法一:
python -c “import mindspore;mindspore.run_check()”
如果输出:
MindSpore version: 版本
The result of multiplication calculation is correct, MindSpore has been installed successfully!
说明MindSpore安装成功了。
方法二:
import numpy as np
from mindspore import Tensor
import mindspore.ops as ops
import mindspore.context as context
context.set_context(device_target=”Ascend”)
x = Tensor(np.ones([1,3,3,4]).astype(np.float32))
y = Tensor(np.ones([1,3,3,4]).astype(np.float32))
print(ops.add(x, y))
如果输出:
[[[[2. 2. 2. 2.]
[2. 2. 2. 2.]
[2. 2. 2. 2.]]
[[2. 2. 2. 2.]
[2. 2. 2. 2.]
[2. 2. 2. 2.]]
[[2. 2. 2. 2.]
[2. 2. 2. 2.]
[2. 2. 2. 2.]]]]
说明MindSpore安装成功了。
升级MindSpore版本
当需要升级MindSpore版本时,可执行如下命令:
pip install –upgrade mindspore-ascend=={version}
其中:
3.2 MindInsight环境安装配置
确认系统环境信息
可以采用pip安装,源码编译安装和Docker安装三种方式。
pip安装
安装PyPI上的版本:
pip install mindinsight=={version}
安装自定义版本:
pip install https://ms-release.obs.cn-north-4.myhuaweicloud.com/{version}/MindInsight/any/mindinsight-{version}-py3-none-any.whl –trusted-host ms-release.obs.cn-north-4.myhuaweicloud.com -i https://pypi.tuna.tsinghua.edu.cn/simple
其中:
注:非root用户需要在命令中加入“–user”参数。
源码编译安装
从代码仓下载源码
git clone https://gitee.com/mindspore/mindinsight.git -b r1.7
编译安装MindInsight
可选择以下任意一种安装方式:
1.在源码根目录下执行如下命令。
cd mindinsight
pip install -r requirements.txt -i https://pypi.tuna.tsinghua.edu.cn/simple
python setup.py install
2.构建whl包进行安装
进入源码的根目录,先执行build目录下的MindInsight编译脚本,再执行命令安装output目录下生成的whl包。
cd mindinsight
bash build/build.sh
pip install output/mindinsight-{version}-py3-none-any.whl -i https://pypi.tuna.tsinghua.edu.cn/simple
Docker安装
MindSpore的镜像包含MindInsight功能,请参考官 安装指导。
验证是否成功安装
执行如下命令:
mindinsight start
如果出现下列提示,说明安装成功:
Web address: http://127.0.0.1:8080
service start state: success
二、MindStudio简介和安装
1 MindStudio简介
MindStudio提供在AI开发所需的一站式开发环境,支持模型开发、算子开发以及应用开发三个主流程中的开发任务。依靠模型可视化、算力测试、IDE本地仿真调试等功能,MindStudio能够帮助您在一个工具上就能高效便捷地完成AI应用开发。MindStudio采用了插件化扩展机制,开发者可以通过开发插件来扩展已有功能。
功能简介
功能框架
MindStudio功能框架如图所示,目前含有的工具链包括:模型转换工具、模型训练工具、自定义算子开发工具、应用开发工具、工程管理工具、编译工具、流程编排工具、精度比对工具、日志管理工具、性能分析工具、设备管理工具等多种工具。
工具功能
MindStudio工具中的主要几个功能特性如下:
2 MindStudio安装
2.1 安装Python依赖
(1)官方 站下载安装安装Python3.7.5到Windows本地。
(2)设置环境变量。
(3)“Win + R”快捷键打开系统命令行,输入“Python -V”,显示Python版本 表示安装成功。
(4)安装Python3相关依赖。
pip install xlrd==1.2.0
pip install absl-py
pip install numpy
pip install requests
(5)如若返回如下信息,则表示安装成功。
Successfully installed xlrd-1.2.0
Successfully installed absl-py-0.12.0 six-1.15.0
Successfully installed numpy-1.20.1
Successfully installed requests-2.27.1
更多安装细节请参考:
https://www.hiascend.com/document/detail/zh/mindstudio/50RC1/instg/instg_000022.html
2.2 安装MinGW依赖
(1)根据电脑配置,下载适合的(下载参考地址),例如64位可以选择x86_64-posix-seh。
(2)解压MinGW安装包到自定义路径。
(3)在Windows 10操作系统的“控制面板 > 系统和安全 > 系统”中选择“高级系统设置”,如图所示。
(4)打开系统命令行,输入gcc -v命令。若显示版本 表示安装成功。
更多安装细节请参考:
https://www.hiascend.com/document/detail/zh/mindstudio/50RC1/instg/instg_000022.html
2.3 安装Java依赖
(1)要求Java版本为11,参考下载地址。
(2)下载后安装到本地,设置Java环境变量。
(3)打开系统命令,输入java –version,如显示Java版本信息,则表示安装成功。
2.4 安装Cmake
以msi格式软件包为例,安装步骤如下(下载参考地址),你也可以登录CMake官 下载合适的版本
(1)单击快捷键“win+R”,输入cmd,单击快捷键“Ctrl+Shift+Enter”,进入管理员权限命令提示符。若弹出“用户帐户控制”提示窗口,单击“是”。
(2)执行以下命令,安装软件包:
msiexec /package {path}{name}.msi
例如:
msiexec /package D:cmake-3.22.3-win64-x64.msi
(3)根据安装向导进行安装。
更多安装细节请参考:
https://www.hiascend.com/document/detail/zh/mindstudio/50RC1/instg/instg_000022.html
2.5 安装MindStudio
(1)MindStudio官 为我们提供两种安装方式。大家可以选择.zip文件,也可以选择.exe文件。此处我选择下载.zip文件。
(2)下载好后直接解压到任意目录。解压后目录结构如图所示。
(3)点击“bin”目录,然后双击目录下的“MindStudio64.exe”应用程序,运行MindStudio。
详细安装指导请参阅:
https://www.hiascend.com/document/detail/zh/mindstudio/50RC1/instg/instg_000021.html
三、使用MindStudio创建训练工程和运行脚本
1 导入模型代码创建训练工程
(1) 启动MindStudio
首次启动MindStudio会进入如下欢迎界面,大家按需选择新建项目或打开本地项目,在这里,我点击 Open 按钮打开本地现存项目(
https://gitee.com/mindspore/models/tree/master/official/recommend/ncf)。
(2) 选择项目所在位置,添加 ncf 项目,点击 OK确定。
(3) 项目结构如图所示。
2 配置远程环境
2.1 连接远程服务器
(1) 点击 Tools -> Deployment -> Configuration,配置远程连接服务器。
(2) 选中左侧 Deployment 选项卡,点击左上角加 ,输入自定义远程连接名称。
(3) 输入服务器 IP 地址、端口 、用户名及密码,建议勾选 Save password 保存密码,测试可以成功连接后,点击OK确定。
(4) 点击 Mappings 配置本地到服务器的文件路径映射。Local Path 填入本地项目路径,Deployment Path 选中远程服务器的项目路径,这两个文件夹名称不必完全相同。Excluded Paths(非必需)为配置忽略路径,表示忽略的项目文件不会上传到远程服务器。配置完成后,点击 OK 确定。
2.2 设置CANN
(1) 点击 File -> Settings,进入设置。
(2) 在左侧菜单依次选中 Appearance & Behavior -> System Settings -> CANN, 进入 CANN 配置选项卡中,设置远程服务器CANN路径。
2.3 配置远程SDK
(1) 点击 File -> Projects Structure 进入项目设置。
(2) 在左侧菜单中选择 SDKs,点击左上角加 ,选择 Add Python SDK… 进行SDK配置。
(3) 在弹出的选项卡中选择 SSH Interpreter,在Deploy中选择远程连接名称,等待 IDE 自动检测可用的Interpreter。
(4) 自动检测远程的SDK并显示如下,可以对其进行手动修改,我将 SDK 名称更改为 msp1.7 以便区分。
(5) 在 Project 中设置刚才配置的远程SDK msp1.7。
3 运行训练脚本
3.1 安装项目依赖
(1) 点击 Tools -> Start SSH session 打开远程服务器终端。
(2) 远程服务器终端显示在 IDE 下方控制台处,输入 pip list 检查所需依赖是否已安装。
(3) 菜单栏中点击 Ascend -> Convert To Ascend Project,将当前项目转换为昇腾项目。
(4) 在弹出的对话框中选择转换的类型和框架,此处选择 Ascend Training 和 MindSpore 框架,点击 OK 确定。
3.2 数据集下载和处理
(1)NCF模型介绍
NCF 是用于协同过滤推荐的通用框架,其中神经 络架构用于对用户交互进行建模。与传统模型不同,NCF 不诉诸矩阵分解 (MF),其对用户和项目的潜在特征进行内积。它用可以从数据中学习任意函数的多层感知器代替积。
详见:
https://gitee.com/mindspore/models/tree/master/official/recommend/ncf
(2)展开src目录,右击 movielens.py,配置运行参数。
(3)配置运行参数,其中 Script path 设置为运行文件,Parameters 中设置参数,Python interpreter 选择前文配置的远程服务器中的 SDK,点击 OK 确定。
(4) 点击工具栏中的运行按钮,等待 ml-1m 数据集下载和预处理,大家可以在控制台输出查看当前程序运行的实时日志。
如果数据处理结束,会在控制台输出正常退出。
(5) 当运行程序后产生新的文件时,需要本地同步更新。建议大家点击Tools -> Deployment -> Automatic Upload 开启本地与服务器文件自动同步的功能。
(6)开启自动同步后,更新过程如图所示:
3.3 训练项目
(2)设置训练参数,此处设置了训练20个epoch,batch_size为256,输出保存在 ./output文件夹中,checkpoint保存在 ./nfc.ckpt 文件夹中,点击 OK 确定。
(3)点击运行,项目开始进行训练。
(4)在控制台中查看训练过程中实时打印的日志。
四、MindInsight训练可视化及精度调优指南
1 准备训练脚本
(1)在train.py中,导入SummaryCollector。
from mindspore.train.callback import SummaryCollector
(2)在train.py代码中,实例化 SummaryCollector,并添加到callbacks中。
# Init summary_collector
summary_collector = SummaryCollector(summary_dir=”./summary_dir”)
model.train(epochs,
ds_train,
callbacks=[TimeMonitor(ds_train.get_dataset_size()),
callback, ckpoint_cb, summary_collector],
dataset_sink_mode=False)
声明:本站部分文章及图片源自用户投稿,如本站任何资料有侵权请您尽早请联系jinwei@zod.com.cn进行处理,非常感谢!