CANN训练营-笔记

昇腾AI基础知识

昇腾AI全栈架构

芯片:终端设备、边缘计算、云服务。(昇腾310、910等)

芯片使能:CANN

AI架构:Mindspore、TensorFlow、Pytorch、Caffe

应用使能:ModelArts等

异构计算架构CANN

计算资源层:系统对数据处理和数据运算执行
芯片使能层:实现解决方案对外能力开放,以及基于计算图的业务流的控制和运行

应用层:包括基于Ascend平台开发的各种应用,以及Ascend提供给用户进行算法开发、调优的应用类工具

昇腾计算语言接口AscendCL

应用开发框架,加速推理,加载模型做推理

向上供应用程序等调用,向下调用GE执行器、运行管理器、驱动等进行加速计算

TensorFlow模型迁移&训练

深度学习

构筑一个由简单概念组成的多层连接网络来定义复杂对象,计算机通过对这个网络的迭代计算与训练后,可以掌握这个对象的特征,一般称这种方法为深度学习(DeepLearning,DL)。

TensorFlow AI框架

CANN模型开发流程

①环境准备②GPU训练复现③模型迁移④单Device训练⑤(可选)分布式训练⑥训练精度调优⑦训练性能调优⑧模型固化⑨离线推理或在线推理⑩推理精度调优⑪推理性能调优

TensorFlow AI模型迁移

      1. 了解为什么要做模型迁移
    
      2. 了解模型迁移的两种迁移方式
    
      3. 掌握如何进行模型迁移

为什么要做模型迁移

除了昇思MindSpore外,TensorFlow等其他深度学习框架下的模型并不能直接在昇腾910 AI处理器上训练,转换后的模型能够高效运行在昇腾910 AI处理器上。

两种模型迁移方式

        1.自动迁移(推荐)

        2.手工迁移

自动迁移详解

通过工具对原始脚本进行AST语法树扫描,可自动分析原生的TensorFlow API在昇腾AI处理器上的支持度,并将原始的TensorFlow训练脚本自动迁移成昇腾AI处理器支持的脚本,对于无法自动迁移的API,可以参考工具输出的迁移报告,对训练脚本进行相应的适配修改。

手工迁移详解

三种当前Ascend910上支持TensorFlow的三种API开发训练脚本迁移:Estimator,Sess.run,Keras

Estimator:

使用Estimator进行训练脚本开发的一般步骤(迁移同):

        (from npu_bridge.npu_init import *)

        1.数据预处理,创建函数input_fn;(直接迁移,无需修改)

        2.模型构建,构建模型函数model_fn;(一般直接迁移,无需修改)

        3.运行配置,实例化Estimator,传入Runconfig类对象作为运行参数;

        4.执行训练,在Estimator上调用训练方法Estimator。train(),利用指定输入对模型进行固定步数的训练。

Estimator迁移:

1.数据预处理。直接迁移,无需修改。

​    但如果在创建dataset时,使用dataset.batch返回动态shape,需要设置drop_remainder为TRUE,使其固定shape。

​ dataset = dataset.batch(batch_size,drop_remainder=True)

2.模型构建。一般直接迁移,无需修改。

​    如果原始网络中使用到了tf.device,需要删除相关代码;

​    如果在model中使用了gelu和dropout接口,推荐修改为NPU提供的高    性能接口。

3.运行配置。原始TensorFlow通过RunConfig配置运行参数;

​    将TensorFlow的RunConfig迁移为NPURunConfig。 

4.创建Estimator。利用指定输入对模型进行固定步数训练。将TensorFlow的Estimator迁移为NPUEstimator。

5.执行训练。利用指定输入对模型进行固定步长训练。无需修改。

Session Run迁移:

(from npu_bridge.npu_init import *)

1.数据预处理;同Estimator。

2.模型搭建/计算Loss/梯度更新;同Estimator。

3.创建session并初始化资源;

CANN训练营-笔记_第1张图片

tf.Session原生功能在CANN平台上全部支持。

CANN训练营-笔记_第2张图片

4.执行训练。Sess.run部分直接迁移,无需改造。

但如果用户训练脚本中没有使用with创建session,那么需要在迁移后的脚本中显示调用sess.close()。

sess = tfSession(config=config)

sess.run(…)

sess.close()

TensorFlow AI模型训练

基于昇腾910的TF网络脚本训练(ModelArts平台)

OBS(数据集;模型)↔ModelArts(训练平台)↔Pycharm Toolkit(训练任务的下发)

- 对象存储服务(OBS):基于对象的海量存储服务,为客户提供数据存储能力。
- ModelArts平台:面向AI开发者的一站式开发平台,可进行数据处理、模型训练以及模型部署等操作,但自身不具备存储服务。
- Pycharm插件ToolKit:为开发者提供快速的将本地代码提交到公有云的训练环境,功能有代码上传、提升训练作业、将训练日志获取到本地展示等。

AI应用开发

编译及运行应用

- 准备模型
- 准备数据
- 编译程序
- 运行程序

获取运行日志

日志位置:默认为”CANN软件安装目录/ascend/log”

CANN训练营-笔记_第3张图片 

日志中关键信息:

CANN训练营-笔记_第4张图片 

你可能感兴趣的:(深度学习,人工智能)