模型转换问题

可以使用IPU_SDK转换工具直接转换INT8的模型吗?

当前不支援直接输入IPU SDK的量化定点网络模型,模型必须从浮点开始转换。可以使用量化导入工具将已有量化信息导入到模型中。详见3.4.3节。

为什么使用ConvertTool.py转换keras模型时Tensorflow报错?

由于默认使用了Tensorflow1.14.0,ConvertTool.py中也调用了Tensorflow的接口将keras模型转换为tflite。由于Tensorflow1.x不能转换Tensorflow2.0以上版本的keras模型,因此会发生错误。请先使用训练的Tensorflow版本将keras模型转换为tflite,然后再使用ConvertTool.py进行转换。

为什么使用simulator.py对YOLO网络测试mAP,精度会那么差?

由于COCO数据集虽然有80个分类,但是label的index不是连续的,加上中间插空的index,一共有90类。所提供的官方YOLO网络预训练模型去除了label的空白项,80类是连续的。如果直接调用COCO的接口计算mAP,结果是不正确的。

为什么在转换定点模型时有这样的报错:SGS_DMA_CoefMartixGen: Assertion s32coef_bgr < HW_COEF_MAX failed.?

这个错误信息说明配置的python前处理和input_config.ini中不一致,主要体现在配置的mean和std不一致。具体详见3.2节图片前处理方法和2.2节input_config配置信息设置。检查统计输入的范围,与设置的input_config.ini中的数据比较。当使用量化导入时,也应该注意第一层卷积输入的设置范围应和input_config.ini中保持一致。

为什么input_config.ini中设置了dequantizations为FALSE,在PC仿真时仍然输出浮点数?

input_config.ini中的dequantizations配置成FALSE后是simulator.py完成了将int16输出结果乘scale的过程。配置成TRUE,会在转换Fixed模型时在输出增加Fix2float算子,此时模型直接输出浮点数据。还可以使用calibrator_custom.fixed_simulator创建定点模型的实例,通过get_output_details的方法查看网络输出的数据类型。

为什么从浮点模型转到定点模型的时候,一直卡在Start to analysis model...?

遇到这个情况,请检查提供量化使用的数据集中文件名是否包含有中文字符。

为什么用DumpDebug工具比较有精度损失的定点模型和浮点模型时,输出的log中不能显示出所有层的比较结果?

这是由于DebugConfig.txt中的disableDomainFuseOps没有开启,导致有些op融合。请先将DebugConfig.txt拷贝到执行目录中,并将disableDomainFuseOps开启,并重新转换模型后再进行simulator生成sigma_outtensor_dump.bin文件。

为什么用DumpDebug工具比较时,会出现 write file fail...?

这是由于DebugConfig.txt中path=配置的路径不存在,请检查配置的路径并配置存在的绝地路径。默认路径为用户根目录。