airockchip / rknn-toolkit2

Other
758 stars 78 forks source link

精度分析可以设置通道格式吗?默认是NHWC,但是我实际上模型的通道是NCHW #113

Open LongDan15 opened 1 month ago

LongDan15 commented 1 month ago

I target set by user is: rk3566 I Get hardware info: target_platform = rk3566, os = Linux, aarch = aarch64 I Check RK3566 board npu runtime version I Starting ntp or adb, target is RK3566 I Start adb... I Connect to Device success! I NPUTransfer: Starting NPU Transfer Client, Transfer version 2.1.0 (b5861e7@2020-11-23T11:50:36) D RKNNAPI: ============================================== D RKNNAPI: RKNN VERSION: D RKNNAPI: API: 2.0.0b0 (18eacd0 build@2024-03-22T06:07:59) D RKNNAPI: DRV: rknn_server: 2.0.0b0 (18eacd0 build@2024-03-22T14:07:19) D RKNNAPI: DRV: rknnrt: 2.0.0b0 (35a6907d79@2024-03-24T10:31:14) D RKNNAPI: ============================================== D RKNNAPI: Input tensors: D RKNNAPI: index=0, name=data, n_dims=4, dims=[1, 112, 112, 3], n_elems=37632, size=37632, w_stride = 0, size_with_stride = 0, fmt=NHWC, type=INT8, qnt_type=AFFINE, zp=0, scale=0.007843 D RKNNAPI: Output tensors: D RKNNAPI: index=0, name=554, n_dims=2, dims=[1, 512], n_elems=512, size=512, w_stride = 0, size_with_stride = 0, fmt=UNDEFINED, type=INT8, qnt_type=AFFINE, zp=-38, scale=0.044667

yuyun2000 commented 1 month ago

可以查看文档确认一下

LongDan15 commented 1 month ago

可以查看文档确认一下

查看了,没有提到能在精度分析这里改的,只有rknn.inference推理的时候可以设置通道格式

yuyun2000 commented 1 month ago

这个我也不是很确认,尝试过添加那个参数吗?会报错吗?

LongDan15 commented 1 month ago

这个我也不是很确认,尝试过添加那个参数吗?会报错吗?

会报错 --> Accuracy analysis Traceback (most recent call last): File "/home/holmes/longdan/rknn_model_zoo/examples/mobilenet/python/mobilefacenet.py", line 193, in ret = rknn.accuracy_analysis( TypeError: accuracy_analysis() got an unexpected keyword argument 'data_format'

yuyun2000 commented 1 month ago

那这个很奇怪啊,你可以先手动permute到nhwc,然后用接口跑一下,看看精度先,曲线拯救一下

LongDan15 commented 1 month ago

yuyun2000

写了一个手动计算的程序,实测的结果为: Max Similarity Key Accuracy: 38.12% Average Cosine Similarity of Scores: 0.4206 可以看到精度下降特别多

yuyun2000 commented 1 month ago

还用一个办法,你把nchw和nhwc两种格式都输入进去,看看接口的输出精度。