文章目录
-
- 一、为什么要做模型迁移
- 二、了解两种模型迁移方式
- 三、TensorFlow AI 模型自动迁移详解
-
- 1. 模型自动迁移步骤
- 四、TensorFlow AI 模型手工迁移详解
-
- 1. 为什么要进行 络迁移
- 2. 迁移流程
- 3. Estimator 迁移要点
-
- ① Estimator迁移
- ② 使用Estimator进行训练脚本开发的一般步骤
- ③ Estimator 迁移的详细步骤
- 4. Session Run 迁移要点
-
- ① Sess.run 迁移
- ② 使用 Sess.run API 进行训练脚本开发的一般步骤
- ③ Sess.run 迁移的详细步骤
一、为什么要做模型迁移
目前人工智能领域内,AI算法模型搭建方面的技艺已经是炉火纯青,市面上用于AI模型搭建的深度学习框架,除了华为开源的昇思MindSpore,还有Google的TensorFlow、Facebook的PyTorch、Caffe等。
但是AI模型训练却是一个漫长的过程,随着模型参数量、样本的增多,训练一个模型动辄以月为单位,此时一款高性能AI处理器简直是雪中送炭。昇腾910 AI处理器是华为在2019年发布的人工智能(AI)专用的神经 络处理器,其算力高达256T,最新款算力高达310T,是业界主流处理器算力的2倍,基于昇腾910 AI处理器的昇腾系列硬件,比如Atlas 800训练服务器,算力更是大到惊人,此时你一定跃跃欲试了。
除了昇思MindSpore外,TensorFlow等其他深度学习框架下的模型并不能直接在昇腾910 AI处理器上训练,为了使其充分利用昇腾910 AI处理器的澎湃算力来提升训练性能,我们需要借助异构计算架构CANN的Plugin适配层转换,使转换后的模型能够高效运行在昇腾910 AI处理器上。值得庆幸的是,目前,CANN已经能够支持多种主流AI框架,包括昇思MindSpore、TensorFlow、PyTorch、飞浆、ONNX等,并且开发者只需要非常少的改动,即可快速搞定算法移植,大大减少切换平台的代价。
下面的课程中,我们主要以TensorFlow模型迁移和训练为例进行介绍。
二、了解两种模型迁移方式
将TensorFlow 络模型迁移到昇腾AI处理器执行训练,主要有两种方式:
一种是 自动迁移 方式。通过迁移工具对原始脚本进行AST语法树扫描,可自动分析原生的TensorFlow API在昇腾AI处理器上的支持度,并将原始的TensorFlow训练脚本自动迁移成昇腾AI处理器支持的脚本,对于无法自动迁移的API,可以参考工具输出的迁移 告,对训练脚本进行相应的适配修改。
一种是 手工迁移 方式。算法工程师需要人工分析TensorFlow训练脚本中的API支持度情况,并且参照文档逐一手工修改不支持的API,以便在昇腾AI处理器上训练,该种方式较为复杂,我们建议大家优先使用自动迁移方式。
三、TensorFlow AI 模型自动迁移详解
自动迁移是通过工具对原始脚本进行AST语法树扫描,可自动分析原生的TensorFlow API在昇腾AI处理器上的支持度,并将原始的TensorFlow训练脚本自动迁移成昇腾AI处理器支持的脚本,对于无法自动迁移的API,可以参考工具输出的迁移 告,对训练脚本进行相应的适配修改。
相关学习文档,请点击:LINK
1. 模型自动迁移步骤
1. 下载和安装软件
软件 址:第三方框架适配-昇腾 区 (hiascend.com)
① 迁移工具在 “tfplugin” 安装目录 目录下。
② 了解工具的使用限制
3. 准备脚本和数据集
① 准备脚本和数据集
4. 使用工具迁移
① 安装相关依赖
② 训练脚本扫描和自动迁移
5. 训练前准备
执行单Device训练-自动迁移和训练-TensorFlow 络模型迁移和训练-模型开发-5.1.RC2.alpha007-CANN 区版本-文档首页-昇腾 区 (hiascend.com)
① 将迁移后的脚本拷贝到训练路径
② 训练前,对照文档准备运行环境、ranktable 文件,并配置必要的环境变量
6. 启动训练
① 启动 shell 脚本,拉起训练进程
四、TensorFlow AI 模型手工迁移详解
手工迁移需要算法工程师人工分析TensorFlow训练脚本中的API支持度情况,并且参照文档逐一手工修改不支持的API,以便在昇腾AI处理器上训练,该种方式较为复杂,我们建议大家优先使用自动迁移方式。
相关学习文档:LINK
在线实验:LINK
更多学习课程:LINK(请观看第一章内容,可不关注ModelArts训练部分的介绍,后续课程会有讲解)
1. 为什么要进行 络迁移
Ascend910 是华为在2019年发布的人工智能(AI)专用的神经 络处理器(NPU),其算力高达256T,最新款算力高达320T,是业界主流芯片算力的2倍,默认配套Mindspore训练框架。当前业界大多数训练脚本基于TensorFlow的PyhonAPI开发,默认运行在CPU/GPU/TPU。为了使其能够在 Ascend910 上利用NPU的澎湃算力执行训练,提升训练性能,我们需要对训练 络脚本进行少量的迁移适配工作。当前 Ascend910 上支持TensorFlow的三种API开发的训练脚本迁移:分别是Estimator,Sess.run,Keras。
2. 迁移流程
声明:本站部分文章及图片源自用户投稿,如本站任何资料有侵权请您尽早请联系jinwei@zod.com.cn进行处理,非常感谢!