--mode

产品支持情况

全量芯片支持

功能说明

运行模式。

关联参数

  • --mode取值为1或5,则需要与--om--json参数配合使用。如果将原始模型文件转换成带shape信息的JSON文件,则还需要与--dump_mode参数配合使用。
  • --mode取值为6,则只需要与--om参数配合使用。
  • --mode取值为3,需要自行指定预检结果保存路径时,需要与--check_report参数配合使用。
  • --soc_version取值为Ascend035,则该参数仅支持配置为30。

参数取值

参数值:

  • 0:(默认值)生成适配AI处理器的离线模型,模型文件格式为*.om。
  • 1:离线模型或原始模型文件转JSON文件,方便查看模型中的参数信息。
  • 3:仅做预检,检查模型文件的内容是否合法。
  • 5:dump图结构文件转JSON文件,用于解析图编译过程中产生的dump图结构(ge_proto*.txt格式文件,ge_onnx*.pbtxt暂不支持),然后将dump图结构转换成JSON文件,方便用户定位。
  • 6:针对已有的离线模型,显示模型信息,包括模型占用的关键资源信息、编译与运行环境等信息。
  • 30:生成适配AI处理器的离线模型,模型文件格式为*.exeom,同时生成图调试信息文件*.dbg,用于dump、profiling的图调试。*.om模型和*.exeom模型的对比如下:
    • *.exeom文件感知具体的硬件调度能力、包含目标执行平台的运行时数据结构(这些数据以二进制的形式保存在*.exeom文件中),在模型加载阶段,加载恢复二进制内容,根据用户应用程序传递的数据区地址,或实际申请到的数据地址,刷新二进制中的地址指针值后,将二进制内容直接拷贝至Device,达到提升模型加载性能、降低模型加载内存峰值占用的效果。在一些资源受限的场景,建议使用*.exeom模型文件,增强产品的竞争力。
    • *.om文件不感知具体的硬件调度能力、包含中间态的抽象数据结构,在模型加载阶段,再根据具体执行平台的调度特性,生成运行时数据结构。

参数值约束:

--mode取值为5,需要设置相关环境变量,先获取dump图结构文件,方法请参见2.c。设置完环境变量,模型转换完毕,在执行atc命令的当前路径会生成相应的图结构文件。

推荐配置及收益

无。

示例

  • 参数值取值为0:

    atc --mode=0 --framework=3 --model=$HOME/module/resnet50_tensorflow.pb  --output=$HOME/module/out/tf_resnet50  --soc_version=<soc_version>
    
  • 参数值取值为1:

    • 离线模型转换为JSON文件

      atc --mode=1 --om=$HOME/module/out/tf_resnet50.om  --json=$HOME/module/out/tf_resnet50.json
      
    • 原始模型文件转换为JSON文件

      atc --mode=1 --om=$HOME/module/resnet50_tensorflow.pb  --json=$HOME/module/out/tf_resnet50.json  --framework=3
      
  • 参数值取值为3:

    atc --mode=3 --framework=3 --model=$HOME/module/resnet50_tensorflow.pb --soc_version=<soc_version>
    

    执行完毕,在当前路径生成预检结果文件check_result.json。

  • 参数值取值为5:

    atc --mode=5 --om=$HOME/module/ge_proto_00000000_PreRunBegin.txt --json=$HOME/module/out/ge_proto.json
    
  • 参数值取值为6:

    atc --mode=6 --om=$HOME/module/out/tf_resnet50.om
    

    命令执行完毕,屏幕会打印类似如下信息:

    ============ Display Model Info start ============
    # 模型转换使用的atc命令
    Original Atc command line: ${INSTALL_DIR}/bin/atc.bin --model=$HOME/module/resnet50_tensorflow.pb  --framework=3 --output=$HOME/module/out/tf_resnet50 --soc_version=<soc_version> --display_model_info=1
    # ATC软件版本信息、soc_version版本信息、原始框架信息
    system   info: atc_version[xxx], soc_version[xxx], framework_type[xxx].
    # 运行时的占用内存、权重大小、逻辑stream数目、event数目
    resource info: memory_size[xxx B], weight_size[xxx B], stream_num[xxx], event_num[xxx].
    # 离线模型文件中各分区大小、包括ModelDef、权重、tbe_kernels、task_info、so占用的大小等
    om       info: modeldef_size[xxx B], weight_data_size[xxx B], tbe_kernels_size[xxx B], cust_aicpu_kernel_store_size[xxx B], task_info_size[xxx B], so_store_size[xxx B].
    ============ Display Model Info end   ============
    
  • 参数值取值为30:

    atc --mode=30 --framework=3 --model=$HOME/module/resnet50_tensorflow.pb  --output=$HOME/module/out/tf_resnet50  --soc_version=<soc_version>
    

依赖约束

无。