迁移操作

  1. 进入X2MindSpore工具所在路径。

    cd Ascend-cann-toolkit安装目录/ascend-toolkit/latest/tools/x2mindspore/

  2. 启动迁移任务。

    参考表1配置信息,执行如下命令启动分析迁移任务。
    ./run_x2mindspore.sh -i 原始脚本路径 -o 脚本迁移结果输出路径 -f 原始脚本的框架 [-d 指定设备] [-m] [-g] [-t 目标模型变量名]
    表1 参数说明

    参数

    参数说明

    取值示例

    -i

    --input

    • 要进行迁移的原始工程目录。
    • 必选。

    /home/username/x2mindspore

    -o

    --output

    • 脚本迁移结果文件输出路径。会在该路径下输出带有x2ms或x2ms_multi后缀的目录。不开启迁移至多卡脚本功能场景下,输出目录名为xxx_x2ms;开启迁移至多卡脚本功能场景下,输出目录名为xxx_x2ms_multi,xxx为原始脚本所在文件夹名称。
    • 必选。

    /home/username/x2mindspore_output

    -f

    --framework

    • 原始脚本的框架,可选择pytorch、tensorflow_v2和tensorflow_v1。
    • 必选。
    • pytorch
    • tensorflow_v2
    • tensorflow_v1

    -d

    --distributed

    • 将GPU单卡脚本迁移为GPU或Ascend多卡脚本,默认为“ascend”。目前该功能不支持TensorFlow 1.x。
    • 可选。
    • gpu
    • ascend

    -g

    --graph

    • 迁移后的脚本支持在MindSpore 1.8及更新版本的Graph模式下运行。不指定该参数时,默认迁移至PyNative模式。目前仅有模型列表中ResNet和BiT系列(PyTorch)的模型支持Graph模式迁移。该参数不能与“-d/--distributed”同时使用。
    • 可选。

    -

    -t

    --target-model

    • 目标模型变量名,默认为“model”。该参数与“-g/--graph”配合使用。
    • 可选。

    model

    -h

    --help

    • 显示帮助信息。
    • 可选。

    -

  3. 查看迁移结果。

    脚本迁移后,可在2指定的脚本迁移结果文件输出路径中查看结果文件。

    ├── xxx_x2ms/xxx_x2ms_multi              // 脚本迁移结果输出目录
    │   ├── 迁移后的脚本文件             // 与迁移前的脚本文件目录结构一致。
    │   ├── x2ms_adapter                 // 适配层文件。
    │   ├── unsupported_api.csv          // 不支持API列表文件。
    │   ├── custom_supported_api.csv     // 工具自定义适配API列表文件(目前仅支持PyTorch2MindSpore工具)。
    │   ├── supported_api.csv            // 支持API列表文件。
    │   ├── deleted_api.csv              // 删除API列表文件。
    │   ├── x2mindspore.log              // 迁移日志,日志文件限制大小为1M,若超过限制将分多个文件进行存储,最多不会超过10个。
    │   ├── run_distributed_ascend.sh       // 启用Distributed参数,且Device指定Ascend设备时,会生成该多卡启动shell脚本。
    │   ├── rank_table_2pcs.json            // 启用Distributed参数,且Device指定Ascend设备时,会生成该2卡环境组网信息样例文件。
    │   ├── rank_table_8pcs.json            // 启用Distributed参数,且Device指定Ascend设备时,会生成该8卡环境组网信息样例文件。

  4. 在执行迁移后的模型文件前请先将输出的工程路径加入环境变量PYTHONPATH中。