专栏算法工具链模型输出数据size疑问

模型输出数据size疑问

加利福尼亚不下雨6小时前
12
3

******************************************************start tensor : 0 **************************************************

output_tensor.sysMem.phyAddr is : 31916032

output_tensor.sysMem.virAddr is : -1989279744

output_tensor.sysMem.memSize is : 458752

[output_tensor.properties.validShape.dimensionSize] Dimension size (length: 10): [1, 64, 112, 10, 0, 0, 0, 0, 0, 0]
output_tensor.properties.validShape.numDimensions is : 4
output_tensor.properties.tensorType is : 0.000000
output_tensor.properties.scale.scaleLen is : 10
output_tensor.properties.scale.zeroPointLen is : 10

==========================================

[output_tensor.properties.scale] 量化尺度数据打印

==========================================

【ScaleData信息】

scaleLen: 10

scaleData: [0.000457, 0.000624, 0.000576, 0.000518, 0.000484, 0.000823, 0.000507, 0.000617, 0.001409, 0.000605]

【ZeroPointData信息】

zeroPointLen: 10

zeroPointData: [0, 0, 0, 0, 0, 0, 0, 0, 0, 0]

output_tensor.properties.quantiType is : 1
output_tensor.properties.quantizeAxis is : 0.000000
output_tensor.properties.alignedByteSize is : 0.000000
[output_tensor.properties.stride] Dimension size (length: 10): [458752, 7168, 64, 4, 0, 0, 0, 0, 0, 0]

******************************************************end tensor : 0 **************************************************

output_tensor.sysMem.memSize 不应该等于 1 x 64 x 112 x 10 x sizeof(float) 吗? 为什么是458752, 这么奇怪的数字?
算法工具链
技术深度解析征程6
评论1
0/1000
  • Huanghui
    Lv.5
    这是数据对齐后的结果,stride 和 shape一起看你就知道咋处理了。
    [458752, 7168, 64, 4, 0, 0, 0, 0, 0, 0] 这里的4是sizeof(float) = 4,然后64/4 = 16,但你的valid shpae dim3为10,说明最后一维padding了6(16-10)个sizeof(float),padding的原因是BPU属于硬件单元,每次计算的数据长度是确定的(J6EM上字节数需要是32的整数倍)。也就是实际上alignedShape是[1, 64, 112, 16],type为f32,所以结果为:1 x 64 x 112 x 16 x sizeof(float) =
    5小时前
    0
    2
    • 加利福尼亚不下雨回复Huanghui:

      看看这个,是否满足同样的规律??

      output_tensor.sysMem.phyAddr is : 33030144

      output_tensor.sysMem.virAddr is : -1990000640

      output_tensor.sysMem.memSize is : 32768

      [output_tensor.properties.validShape.dimensionSize] Dimension size (length: 10): [1, 64, 112, 1, 0, 0, 0, 0, 0, 0]
      output_tensor.properties.validShape.numDimensions is : 4
      output_tensor.properties.tensorType is : 0.000000
      output_tensor.properties.scale.scaleLen is : 1
      output_tensor.properties.scale.zeroPointLen is : 1

      ==========================================

      [output_tensor.properties.scale] 量化尺度数据打印

      ==========================================

      【ScaleData信息】

      scaleLen: 1

      scaleData: [0.000066]

      【ZeroPointData信息】

      zeroPointLen: 1

      zeroPointData: [0]

      output_tensor.properties.quantiType is : 1
      output_tensor.properties.quantizeAxis is : 0.000000
      output_tensor.properties.alignedByteSize is : 0.000000
      [output_tensor.properties.stride] Dimension size (length: 10): [32768, 512, 4, 4, 0, 0, 0, 0, 0, 0]
      1小时前
      0
    • Huanghui回复加利福尼亚不下雨:
      是的,从给出的stridex信息[32768, 512, 4, 4]可以计算出alignedShpa是[1, 64, 128, 1 ],数据类型为宽度4个字节的类型(f32,int32等),而你的validShape是[1, 64, 112, 1],112 padding到了128,应该是w维。
      刚刚
      0