Ascend平台提供了Tensorflow 1.15网络迁移工具,该工具适用于原生的Tensorflow训练脚本迁移场景,AI算法工程师通过该工具分析原生的TensorFlow Python API和Horovod Python API在昇腾AI处理器上的支持度情况,同时将原生的TensorFlow训练脚本自动迁移成昇腾AI处理器支持的脚本。对于无法自动迁移的API,您可以参考工具输出的迁移报告,对训练脚本进行相应的适配修改。
import tensorflow as tf import tensorflow.compat.v1 as tf import horovod.tensorflow as hvd
在昇腾AI处理器进行模型迁移之前,建议用户事先准备好基于TensorFlow 1.15开发的训练模型以及配套的数据集,并要求在GPU或CPU上跑通,精度收敛,且达到预期精度和性能要求。同时记录相关精度和性能指标,用于后续在昇腾AI处理器进行精度和性能对比。
pip3 install pandas
pip3 install xlrd==1.2.0
pip3 install openpyxl
pip3 install tkintertable
pip3 install google_pasta
进入迁移工具所在目录,例如“tfplugin安装目录/tfplugin/latest/python/site-packages/npu_bridge/convert_tf2npu/”,执行命令可同时完成脚本扫描和自动迁移,例如:
python3 main.py -i /root/models/official/resnet
其中main.py为工具入口脚本,参数说明如下所示。
参数名 |
参数说明 |
可选/必选 |
---|---|---|
-i |
被迁移的原始脚本路径,当前该路径仅支持配置为文件夹,不支持单个文件。 说明:
|
必选 |
-o |
指定迁移后的脚本路径,该路径不能为原始脚本路径的子目录。 该参数可选,如果不指定,默认生成在当前路径下,例如output_npu_20210401150929/xxx_npu_20210401150929。 |
可选 |
-r |
指定生成的迁移报告路径,该路径不能为原始脚本路径的子目录。 该参数可选,如果不指定,默认生成在当前路径下,例如report_npu_20210401150929。 |
可选 |
-m |
Python执行入口文件。 如果原始脚本使用了tf.keras/hvd接口,且脚本中没有main函数,由于迁移工具无法识别入口函数,因此无法进行NPU资源初始化,以及NPU训练相关配置。 对于以上场景,需要通过-m参数指定Python执行的入口文件,以便工具可以将用户脚本进行彻底迁移,保证后续训练的顺利执行。 配置示例:-m /root/models/xxx.py |
可选 |
-d |
如果原始脚本支持分布式训练,需要指定原始脚本使用的分布式策略,便于工具对分布式脚本进行自动迁移。取值:
目前session run分布式脚本无法彻底进行自动迁移,如需支持请参考Session run脚本支持分布式训练。 |
分布式必选 |
通过python3 main.py -h可以获取迁移工具使用帮助。
python3 main_win.py
在弹出的窗口根据界面提示进行操作。