分析迁移操作

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

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

  2. 启动分析迁移任务。

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

    其中若启用“--dynamic-analysis”参数,迁移任务完成后需参考后续操作对训练脚本进行修改,才能获取动态shape分析报告。

    表1 参数说明

    参数

    参数说明

    取值示例

    -i

    --input

    • 待迁移的原始工程目录。
    • 必选。

    /home/username/x2mindspore

    -o

    --output

    • 脚本迁移结果文件输出路径。
    • 不开启“-d/--distributed”即迁移至单卡脚本场景下,输出目录名为xxx_x2ms;开启“-d/--distributed”即迁移至多卡脚本场景下,输出目录名为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”。仅支持pytorch和tensorflow_v2框架。
    • 可选。
    • gpu
    • ascend

    -m

    --modelarts

    • 迁移后的脚本支持在ModelArts平台进行训练作业。仅支持pytorch和tensorflow_v2框架。
    • 可选。

    -

    -g

    --graph

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

    -

    -t

    --target-model

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

    model

    --dynamic-analysis

    • 把脚本转换为用于动态shape分析的工程。目前仅支持PyTorch框架的脚本转换。该参数不能与“-d/--distributed”“-m/--modelarts”“-g/--graph”一起使用。
    • 可选。

    -

    -h

    --help

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

    -

  3. 查看迁移结果。

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

    ├── xxx_x2ms/xxx_x2ms_multi              // 脚本迁移结果输出目录
    │   ├── 迁移后的脚本文件             // 与迁移前的脚本文件目录结构一致。
    │   ├── x2ms_adapter                 // 适配层文件。
    │   │   ├── modelarts
    │   │   │   ├── path_mapping_config.py          // 启用ModelArts参数,会生成该路径映射配置文件。
    │   │   │   ├── modelarts_path_manager.py       // 启用ModelArts参数,会生成该路径映射适配层代码文件。
    │   ├── unsupported_api.csv          // 不支持API列表文件。
    │   ├── custom_supported_api.csv     // 工具自定义适配API列表文件(目前仅支持PyTorch框架的训练脚本)。
    │   ├── 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中,示例如下。

    export PYTHONPATH=${HOME}/output/xxx_x2ms:$PYTHONPATH