专栏算法工具链修改input_type_rt,模型的精度下降

修改input_type_rt,模型的精度下降

已解决
默认506562025-01-03
72
10

J3芯片在进行量化的时候,配置文件如下,但是当我将nv12转换为yuv444的时候,模型的余弦相似度大幅度下降,从0.93转换为0.77请问是为什么呢

model_parameters:
onnx_model: '512_1024_1230_int8.onnx'
output_model_file_prefix: '1230_int8_yuv_yaml'
march: 'bernoulli2'
input_parameters:
input_type_train: 'rgb'
input_layout_train: 'NCHW'
input_shape: '1x3x512x1024'
input_type_rt: 'nv12' # 默认的是yuv444,这个是在板端自动进行转换的,但是我们推理的时候需要手动转换为这个格式,那为什么改变这个会影响模型的精度呢
norm_type: 'data_mean_and_scale'
mean_value: '128 128 128'
scale_value: '0.0078125'
input_layout_rt: 'NHWC'
calibration_parameters:
cal_data_dir: './calibration_data_rgb_f32'
calibration_type: 'max'
max_percentile: 0.9995
compiler_parameters:
compile_mode: 'latency'
optimize_level: 'O3'
debug: False
算法工具链
征程3
评论3
0/1000
  • Huanghui
    Lv.5

    你好,这个问题目前判断是因为不同配置下对校准数据的处理造成的,下次求助是记得包出问题的工具链版本号带上。

    我对比了不同版本的工具链,在对数据进行校准处理时的侧率是是不同的,下图是对不同版本工具链的对比.

    你可以先对比一下你的工具链版本,然后切换到不同的工具链版本试试,很有可能会有新的发现。

    2025-01-04
    0
    4
    • 默认50656回复Huanghui:

      horizon-nn 1.0.6 horizon-plugin-profiler 2.2.3 horizon-plugin-pytorch 2.2.3+cu116.torch1130 horizon-tc-ui 1.23.4 horizon-torch-samples 2.0.12+hat1.3.3您好,我的版本号是这个,但是我似乎没有找到您切图的位置,请问他具体是在哪里呢

      2025-01-04
      0
    • 默认50656回复Huanghui:

      而且我发现这个只是将输出转换为不同的格式,并没有对数据处理进行修改都是减去128呀

      2025-01-06
      0
    • Huanghui回复默认50656:

      切图的位置:/usr/local/lib/python3.8/dist-packages/horizon_tc_ui/helper.py

      2025-01-07
      0
    • Huanghui回复默认50656:

      这个不是输出,是在准备校准数据,如果不同版本的校准数据有差异,是有可能导致精度差异的,特别是对数据敏感的模型。

      2025-01-07
      0
  • Huanghui
    Lv.5

    我的版本信息,horizon-nn 1.1.0.post0.dev202411190006+4503dcfe5b76487c904422f89b258356246e06ab horizon-tc-ui 1.24.1,如果还是有问题,可以附上你的模型+配置问题哈

    2025-01-07
    0
    3
    • 默认50656回复Huanghui:

      嗯嗯,麻烦您了。我还想再问一下,校准数据集的类型是否会对模型最终的结果产生影响呢

      2025-01-07
      0
    • 默认50656回复Huanghui:
      我的版本信息是
      配置文件为
      model_parameters: onnx_model: '512_1024_0107.onnx' output_model_file_prefix: '0107_yaml' march: 'bernoulli2'input_parameters: input_type_train: 'rgb' input_layout_train: 'NCHW' input_shape: '1x3x512x1024' input_type_rt: 'yuv444' # 默认的是yuv444,这个是在板端自动进行转换的,但是我们推理的时候需要手动转换为这个格式,那为什么改变这个会影响模型的精度呢 norm_type: 'data_mean_and_scale' mean_value: '128 128 128' scale_value: '0.0078125' input_layout_rt: 'NHWC'calibration_parameters: cal_data_dir: './calibration_data_yuv_try_f32' calibration_type: 'max' max_percentile: 0.999compiler_parameters: compile_mode: 'latency' optimize_level: 'O3' debug: False

      只是将input_type_rt进行修改发现模型最后两层的余弦相似度从93下降到88.我看了自己内部的校准数据处理,发现两者都是将其转换为yuv444的情况,所以这个情况是正常的吗
      2025-01-07
      0
    • 默认50656回复默认50656:

      模型的余弦相似度为0.92是否处于正常水平呢

      2025-01-07
      0
  • Huanghui
    Lv.5

    客户您好,长时间未收到你的答复,相信问题已解。如对此尚存疑问欢迎新帖讨论,感谢您的参与!

    2025-01-15
    0
    0