昇腾AI入门课(TensorFlow)之模型迁移

将TensorFlow网络模型迁移到异腾Al处理器执行训练,主要有两种方式:

  • 自动迁移方式。通过迁移工具对原始脚本进行AST语法树扫描,可自动分析原生的TensorFlow API在异腾AI处理器上的支持度,并将原始的TensorFlowi训练脚本迁移成异腾Al处理器支持的脚本,对于无法自动迁移的API,可以参考工具输出的迁移报告,对训练脚本进行相应的适配修改。
  • 手工迁移方式。算法工程师需要人工分析TensorFlow训练脚本中的API支持度情况,并且参照文档逐一手工修改不支持的API,以便在异腾AI处理器上训练,该种方式较为复杂,我们建议大家优先使用自动迁移方式。

1.自动迁移

  • 使用限制

在使用工具进行模型迁移前,先来了解对原始训练脚本的限制: a.要求原始脚本在GPU/CPU上跑通,精度收敛。 b.要求原始脚本仅使用TensorFlow1.15官方API和Horovod官方API,若用户脚本使用了其他第三方API,当前工具暂不支持迁移。

  • 迁移步骤
# 安装依赖。
pip3 install pandas
pip3 install xIrd==1.2.0
pip3 install openpyxl
pip3 install tkintertable
pip3 install google_pasta

# 进入迁移工具所在目录,执行命令可同时完成脚本扫描和自动迁移
python3 main.py -i/root/models/official/resnet

2.手工迁移

昇腾TF Adapter支持TensorFlow的三种API开发的训川练脚本的手工迁移:分别是Estimator,Sess.run,Keras。 手工迁移点包含: a.导入NPU库文件 b.将部分TensorFlow接口迁移成NPU接口 c.通过配置关闭TensorFlow与NPU冲突的功能 d.配置NPU相关参数

  • 手工迁移过程Estimator

使用Estimatori进行训练脚本开发的流程为:

a.数据预处理,创建输入函数input_fn。

b.模型构建,构建模型函数model_fn。

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

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

  • 手工迁移sess.run

【2023 · CANN训练营第一季】昇腾AI入门课(TensorFlow)之模型迁移_昇腾CANN

  • 手工迁移keras

【2023 · CANN训练营第一季】昇腾AI入门课(TensorFlow)之模型迁移_昇腾CANN_02