昇腾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
- 手工迁移keras