迁移操作
GPU训练复现
在昇腾AI处理器进行模型迁移之前,建议用户事先准备好基于TensorFlow 2.6开发的训练模型以及配套的数据集,并要求在GPU或CPU上跑通,精度收敛,且达到预期精度和性能要求。同时记录相关精度和性能指标,用于后续在昇腾AI处理器进行精度和性能对比。
迁移操作
- 安装依赖。
pip3 install pandas
pip3 install openpyxl
pip3 install google_pasta
- 训练脚本扫描和自动迁移。
进入迁移工具所在目录,例如“tfplugin安装目录/tfplugin/latest/python/site-packages/npu_device/convert_tf2npu/”,执行命令可同时完成脚本扫描和自动迁移,例如:
python3 main.py -i /root/models/examples/test -m /root/models/example/test/test.py
其中main.py为工具入口脚本,参数说明如下所示:
表1 参数说明 参数名
参数说明
可选/必选
-i
被迁移的原始脚本路径,当前该路径仅支持配置为文件夹,不支持单个文件。
说明:- 工具仅对-i参数指定的文件夹下的.py文件进行扫描和迁移。
- 如果用户原始脚本跨目录存放,则建议放到一个目录执行迁移命令,或者在对应目录下依次执行迁移命令。
必选
-o
指定迁移后的脚本路径,该路径不能为原始脚本路径的子目录。
该参数可选,如果不指定,默认生成在当前路径下,例如output_npu_20220517172706/xxx_npu_20220517172706。
可选
-r
指定生成的迁移报告路径,该路径不能为原始脚本路径的子目录。
该参数可选,如果不指定,默认生成在当前路径下,例如report_npu_20220517172706。
可选
-m
Python执行入口文件。
如果原始脚本中没有main函数,由于迁移工具无法识别入口函数,因此无法进行NPU资源初始化,以及NPU训练相关配置。
对于以上场景,需要通过-m参数指定Python执行的入口文件,以便工具可以将用户脚本进行彻底迁移,保证后续训练的顺利执行。
配置示例:-m /root/models/xxx.py
可选
-d
如果原始脚本支持分布式训练,迁移时需要指定原始脚本使用的分布式策略,便于工具对分布式脚本进行自动迁移。取值:
- tf_strategy:表示原始脚本使用tf.distribute.Strategy分布式策略。
- horovod:表示原始脚本使用horovod分布式模块。
可选
-c
如果在脚本使用了tf.compat.v1 API,控制以Tensorflow 1.x行为执行,需要在执行脚本转换命令时添加-c或者--compat。
可选
通过python3 main.py -h可以获取迁移工具使用帮助。
- 迁移过程中,打印如下信息,表明正在扫描相关文件进行脚本迁移。图1 迁移过程信息
- 迁移结束后,生成迁移后的脚本,以及迁移报告。图2 迁移结束信息