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_formats
和input_formats
配置为RAWDATA_F32_NHWC
且使用--batch_mode
的one_buf
模式时才可以配置此参数。 -
可选True/False,默认为True。
-
True
: 替换并覆盖原始输入buf。 -
False
: 保留原始输入buf。