Skip to content

4. Compiler

4.1 Compiler简介

CompilerTool 说明
工具位置 SGS_IPU_SDK/Scripts/calibrator/compiler.py
工具作用 将SigmaStar定点网络模型转换为SigmaStar离线网络模型
使用须知 ① 使用Simulator工具运行多batch离线模型 SGS_IPU_SDK/Scripts/examples/multi_batch_simulator.py
② 使用MI_IPU的API在板端运行多batch离线模型 alkaid/sdk/verify/mi_demo/source/dla/dla_classifyNBatch

4.2 Compiler工具使用说明

4.2.1 Compiler工具使用示例

进入到该工具目录,工具使用示例:

python3 compiler.py \
-m ~/SGS_Models/tensorflow/ssd_mobilenet_v1/ssd_mobilenet_fixed.sim

4.2.2 Compiler工具使用参数说明

(1) 必选参数

  • -m, --model: Fixed网络模型文件路径。

(2) 可选参数:

  • -b, --batch:期待设定的Batch数,默认为1。

  • --batch_mode:多batch模式。

使用须知

  • 可选n_buf/one_buf,默认为n_buf模式

  • n_buf: 每个batch的输入和输出数据独立buffer。

    • 选择该模式时,-b/--batch参数为期待设定的最大Batch数,Compiler会根据最大Batch数优化,生成的离线模型可使用任意小于最大Batch数运行。
  • one_buf: 多个batch的数据需在最高维度堆叠后使用一块buffer。

    • 选择该模式时,-b/--batch参数可指定多种需要使用的Batch数,以逗号( , )分隔,最多设定10个,生成的离线模型仅能使用指定Batch数运行。
  • -c, --category: 模型的类别。

使用须知

  • 可选Classification / Detection / Unknown。

    • Classification: 模型有1个输出,会根据输出排序输出分数由高至低的前5个。
    • Detection: 模型有4个输出,会根据输出转换为输入图片的bbox位置以及类别。只支持SigmaStar后处理算子[SigmaStar后处理模块]。其他后处理请使用Unknown。
    • Unknown: 模型输出不属于上述两种类型,会输出全部的Tensor数值。定点网络模型转换到离线网络模型时默认为Unknown。
  • -o, --output : 模型输出路径。

使用须知

  • 指定离线网络模型输出数据位置:指定到文件夹,将自动以网络模型文件前缀命名,后接sgsimg.img;

  • 指定到具体路径和文件名,将以指定路径和文件名命名离线网络模型;

  • 不指定该参数,将以网络模型文件路径储存离线网络模型。

  • --inplace_input_buf: RAWDATA_F32_NHWC 是否替换并覆盖原始输入buf.

使用须知

  • training_input_formatsinput_formats 配置为 RAWDATA_F32_NHWC 且使用 --batch_modeone_buf模式时才可以配置此参数。

  • 可选True/False,默认为True。

  • True: 替换并覆盖原始输入buf。

  • False: 保留原始输入buf。