专栏算法工具链C++推理输出解析&反量化

C++推理输出解析&反量化

已解决
头角峥嵘2024-09-23
178
10

1. 芯片型号:J6e

2. 天工开物开发包 OpenExplorer 版本:例如 J6_OE_V3.0.17 

3. 问题定位:模型推理

4. 问题具体描述:C++推理,反量化解析

模型输出信息:

stride: [ 20480000, 102400, 512, 32, 1, ]
dim: [ 1, 200, 200, 16, 18, ]
tensor type: 8
quantiType: 2
scale: 1.12633
zero_p: 0

我理解stride 32是为了内存对齐,输出的18字节数据在这32位的前18个字节中,后面的14位都应该是0,但是我把32位全部打印出来,发现都有数据,且不固定


算法工具链
征程6
评论2
0/1000
  • kotei左文亮
    Lv.3

    前面的18个数影不影响你解析结果啊? 后面14位可以不管的,只是为了字节对齐而已。

    2024-09-23
    0
    7
    • 头角峥嵘回复kotei左文亮:

      前18位解析出来的,数据呈现周期性变化,感觉是错误问题,非精度问题

      解析出来的occ:

      infer_hbir.py 推理出来的oc

      解析应该没问题:

      2024-09-23
      0
    • kotei左文亮回复头角峥嵘:

      occ[i][j][k].data()s是什么类型啊?

      上面的解析代码 和 infer_hbir.py 推理里面的逻辑是一样的吗?

      有没有把结果打印出来对比一下,比如打印前100个数值。

      2024-09-26
      0
    • 头角峥嵘回复kotei左文亮:

      occ[i][j][k].data()s是什么类型啊? int_8t

      首先,output->properties.tensorType 为8,根据文档

      得到,输出为int8_t , 然后创建四维vector, 类型为int8_t,通过memcopy

      2024-09-26
      0
    • 头角峥嵘回复kotei左文亮:
      2024-09-26
      0
    • kotei左文亮回复头角峥嵘:

      试一下排列方式,解析这个data 把200*200*16*18位置换一下

      2024-09-30
      0
    • kotei左文亮回复头角峥嵘:

      此问题解决了没有啊?

      2024-10-08
      0
    • kotei左文亮回复头角峥嵘:

      由于您长时间未回复,此问题就先关闭了,如还有疑问,可再发帖求助。

      2024-10-12
      0
  • DR_KAN
    Lv.4

    如果是PTQ,可以和不删反量化节点的输出比较一下,如果有效部分完全相同,那么就不用管那些padding了,直接用就好。

    2024-09-23
    0
    1
    • 头角峥嵘回复DR_KAN:

      是QAT解析

      2024-09-23
      0