【2023 · CANN训练营第一季】新手笔记1
1、使用Estimator进行脚本训练开发的一般步骤为数据预处理 --> 模型构建 --> 运行配置 --> 执行训练
2、昇腾计算服务层包括:昇腾算子库 昇腾调优引擎 框架适配器
3、Modelarts中的开发工具包括:PyCharm Toolkit、Modelarts SDK、CodeLab
4、Mindspore框架开发模型可以不用适配,直接在昇腾AI处理器上进行训练
5、TensorFlow网络模型迁移到昇腾AI处理器有手工迁移和自动迁移两种迁移方式
6、昇腾异构计算架构CANN的逻辑架构:
昇腾计算服务层,提供了高性能的算子库AOL,以及昇腾调优引擎AOE,是昇腾AI处理器能够支持多种多样的人工智能算法、并优化执行性能的基础
昇腾计算编译层,通过图编译器将用户输入中间表达(intermediate Representataion, IR)的计算图编译成昇腾硬件可执行模型
昇腾计算执行层,负责模型和算子的执行,提供运行时库(Runtim)、图执行器(Graph Executor)、数字视觉预处理(Digital Vision Pre-Processing, DVPP)、人工智能预处理(Artificial Intelligence Pre-Processing, AIPP)等功能单元
昇腾计算基础层,主要为其上各层提供基础服务,如共享虚拟内存(Shared Virtual Memory, SVM)、设备虚拟化(Virtual Machine, VM)、主机-设备通信(Host Device Communication, HDC)
7、DVPP数字视觉预处理模块包含:
视频编解码
JPEG图片编解码
PNG图片解码
图片处理,抠图、缩放等
8、Modelarts训练的流程中包含:
注册华为云账号,授权Modelarts
将训练工程上传至OBS
安装Pycharm IDE及Toolkit插件
对Tensorflow训练代码进行NPU的迁移&适配
9、Estimator的训练脚本迁移时:如果原始模型中使用了tf.nn.dropout,建议修改为NPU亲和接口npu_ops.dropout,原始Tensorflow中的Estimator修改为NPUEstimator
10、ensorFlow模型迁移过程主要依赖CANN软件栈的框架适配器Framework Adaptor
11、使用Pycharm在Modelarts训练时:训练所需的数据集和工程会被上传至OBS,
训练生成的device侧日志会保存至OBS,训练期间可以在Modelarts查看NPU的使用情况
12、TensorFlow 1.15 训练脚本的自动迁移时:
Ascend平台提供了Tensorflow 1.15网络迁移工具,该工具适用于原生的Tensorflow训练脚本迁移场景;
CANN软件安装完成后,迁移工具在“tfplugin安装目录/tfplugin/latest/python/site-packages/npu_bridge/convert_tf2npu/”目录下;
要求原始脚本仅使用TensorFlow 1.15官方API和Horovod官方API。
13、昇腾提供的AI框架是:Mindspore
14、AscendCL的优势包括:
高度抽象:算子编译、加载、执行的API归一,相比每个算子一个API,AscendCL大幅减少API数量,降低复杂度
向后兼容:AscendCL具备向后兼容,确保软件升级后,基于旧版本编译的程序依然可以在新版本上运行
零感知芯片:一套AscendCL接口可以实现应用代码统一,多款昇腾处理器无差异
15、ATC工具的特点:
ATC工具将开源框架的网络模型(如Caffe、TensorFlow等)转换成Davinci架构专用的模型
ATC工具可以将Ascend IR定义的单算子描述文件转换为昇腾AI处理器支持的离线模型
ATC工具在转换过程中会进行算子调度优化、权重数据重排、内存使用优化等具体操作
16、模型转换工具的名称是ATC
17、关于自动迁移:
自动迁移指通过工具对原始训练脚本进行AST语法树扫描
自动迁移中可自动分析原生Tensorflow API在昇腾AI处理器上的支持度
自动迁移可将原始的TensorFlow训练脚本自动迁移成昇腾AI处理器支持的脚本
对于无法自动迁移的API,可以参考工具输出的迁移报告,对训练脚本进行相应的适配修改
18、关于AscendCL初始化:
AscendCL初始化时,可以通过json配置文件配置Dump信息、Profiling采集信息等
如果默认配置已满足需求,无需修改,可向aclInit接口中传入NULL,或者可将配置文件配置为空json串(即配置文件中只有{})
使用AscendCL接口开发应用时,必须先调用aclInit接口,否则可能会导致后续系统内部资源初始化出错,进而导致其它业务异常
19、TensorFlow网络模型在昇腾AI处理器上跑起来需要经过以下环节:精度调优、模型迁移、模型训练、性能调优。
20、Pycharm配置Modelarts上训练任务时,需要填写的参数:启动训练脚本路径、OBS上存放训练日志的路径、OBS上训练数据集所在路径、训练所用的AI引擎
21、Modelarts的CodeLab开发工具中的启动方式:Notebook、Terminal、Console。
22、AscendCL能够进行:模型加载与执行、运行时资源管理、算子加载与执行、图像/视频处理
23、昇腾AI处理器内的计算单元包括:
AI CPU,负责执行不适合跑在AI Core上的算子,例如非矩阵类的复杂逻辑处理
AI Core,昇腾AI处理器内的AI计算加速单元
DVPP,昇腾AI处理器内置的图像处理单元
AIPP,可在AI Core上完成数据预处理
24、使用ATC工具对Caffe框架的原始模型进行转换时,需要用到*.prototxt、*.caffemodel
文件
25、昇腾硬件可以用于推理的有:Atlas 200 AI加速模块 、Atlas 500智能小站、Atlas 800 训练服务器、Atlas 300V 视频解析卡。
26、不同型号的昇腾AI处理器有不同的使用场景,通常我们使用昇腾910 处理器进行神经网络模型的训练
27、用于训练的昇腾 AI处理器上支持Tensorflow的三种API开发的训练脚本迁移,分别是estimator、 keras 、sess.run 。
28、昇腾软硬件基础平台中包括应用使能、AI框架、异构计算架构、Atlas系列硬件等,其中异构计算架构对下适配不同的硬件形态,对上适配不同的AI框架,发挥着承上启下的关键作用。
29、模型迁移之前需要做的准备工作:在GPU或CPU进行训练复现,训练跑通
在GPU或CPU进行训练复现,Loss收敛
30、手工方式迁移TensorFlow1.15训练脚本时,可以通过python语句导入NPU相关库文件:
from npu_bridge.npu_init import *
- 点赞
- 收藏
- 关注作者
评论(0)