---
title: 工具简介
description: "TF Adapter提供了TensorFlow 2.6.5网络迁移工具，该工具适用于原生的TensorFlow训练脚本迁移场景，AI算法工程师通过该工具分析原生的TensorFlow Python API在AI处理器上的支持度情况，同时将原生的TensorFlow训练脚本自动迁移成AI处理器支持的脚本，迁移后的脚本能在AI处理器上执行训练，功能跑通。对于无法自动迁移的API，您可以参考工具输出的迁移报告，对训练脚本进行相应的适配修改。"
url: https://www.hiascend.com/document/detail/zh/TensorFlowCommercial/latest/migration/tfmigr2/tfmigr2_000010.html
sourcePath: /source/zh/TensorFlowCommercial/900/migration/tfmigr2/tfmigr2_000010.html
indexId: 6364528acd6a0ad4d098f48260e8c874aa4bcfb9747d483f975b33ab80f8624673
---
# 工具简介

#### 功能介绍

TF Adapter提供了TensorFlow 2.6.5网络迁移工具，该工具适用于原生的TensorFlow训练脚本迁移场景，AI算法工程师通过该工具分析原生的TensorFlow Python API在AI处理器上的支持度情况，同时将原生的TensorFlow训练脚本自动迁移成AI处理器支持的脚本，迁移后的脚本能在AI处理器上执行训练，功能跑通。对于无法自动迁移的API，您可以参考工具输出的迁移报告，对训练脚本进行相应的适配修改。


#### 获取路径

CANN软件安装完成后，迁移工具在“${TFPLUGIN_INSTALL_PATH}/npu_device/convert_tf2npu/”目录下。


#### 使用限制

在使用工具进行模型迁移前，先来了解对原始训练脚本的限制：1. 要求原始脚本在GPU/CPU上运行成功，精度收敛。
2. 要求原始脚本仅使用  TensorFlow 2.6官方API(https://www.tensorflow.org/versions/r2.6/api_docs/python/tf)
，或者当脚本中以tf.compat.v1形式调用TensorFlow 1.x API时，支持使用Horovod API。若用户脚本使用了其他第三方API，当前工具暂不支持迁移。例如：
  a. 不支持原生Keras API，但支持tf.keras的相关API。
  b. 不支持CuPy API，即便原始脚本能在GPU上运行成功，但不能保证在AI处理器运行成功。


3. 原始脚本中的TensorFlow模块需要按照如下方式添加引用，否则工具迁移后，无法生成准确的迁移报告（但不影响脚本迁移功能）。
  1 2 import tensorflow as tf import horovod.tensorflow as hvd

4. 当前版本不支持float64/complex64/complex128/DT_VARIANT数据类型。
5. 关于分布式脚本迁移的限制：

  a. 使用工具迁移前，需要手工添加数据集分片操作，具体请参考    3
。
  b. 当前工具仅支持对使用了TensorFlowKeras优化器（包括SGD/RMSprop/Adam/Ftrl/Adagrad/Adadelta/Adamax/Nadam）的分布式脚本进行自动迁移，其他分布式脚本需要参考    分布式训练脚本适配（兼容单卡）
进行手工迁移。
  c. 如果用户原始脚本中使用了LossScaleOptimizer，当前工具仅支持将tf.keras.mixed_precision.LossScaleOptimizer迁移为    npu.train.optimizer.NpuLossScaleOptimizer
，对于其他类型的LossScaleOptimizer，您应当先切换为tf.keras.mixed_precision.LossScaleOptimizer，进行功能精度验证后再手工替换为    npu.train.optimizer.NpuLossScaleOptimizer
。
6. 迁移工具目前无法自动使能循环下沉功能，如果原始脚本中使用了循环下沉，则需要用户手工使能NPU的循环下沉能力，具体请参考  训练循环下沉时设置NPU上的循环次数
。
