昇腾故障案例详情页

使用modelslim工具label_free量化时,校验输入数据失败

更新时间: 2023/06/25

暂无评分

问题信息

问题来源产品大类关键字
官方模型推理label_free、calib_data格式

问题现象描述

使用modelslim工具label_free量化校验输入数据失败,所有数据都无法被识别。

图1 报错截图

原因分析

可能是输入数据calib_data格式有误导致。

排查方法

1. 排查是否为双层list结构。由于calib_data可以输入多个batch的数据,因此需提供两层list。

2. 排查数据是否为numpy格式。

解决措施

修改后,样例代码如下,能够跑通量化。

from modelslim.onnx.post_training_quant import QuantConfig, run_quantize
from modelslim import set_logger_level
set_logger_level("info")        #根据实际情况配置
import numpy as np
input_model_path="superglue_1201_mask.onnx"   #根据实际路径配置
output_model_path="superglue_1201_mask_slim.onnx"    #根据实际情况配置
def custom_read_data():
    calib_data = []
    # TODO 读取数据集,进行数据预处理,将数据存入calib_data
    import torch
    pad_length = 1000
    input_tensor = (
        torch.randn((1, pad_length, 2)),
    )
    calib_data = [[i.numpy().astype(np.float32) for i in input_tensor]]
    return calib_data
calib_data = custom_read_data()
quant_config = QuantConfig(calib_data=calib_data, amp_num=0)
run_quantize(input_model_path,output_model_path,quant_config)

本页内容

该页面对您有帮助吗?
我要评分