2,851
社区成员




QCS6490的DSP上运行YoloV8没有办法得到正确的结果,检出的输出几乎都是0, 应该如何解决这个问题啊?
如果CPU和CPU能够得到正确的结果,而运行DSP的时候没有办法得到正确的结果, 那么问题可能是出在量化上. 我们可以通过看yolov8的网络结构可以看出, 最后的输出钱有两组输入, 分别为
Sigmoid和Mul
其中sigmoid的数据范围应该是0~1, MUL的数据范围可能会很大, 那么在量化这个Concat节点的时候, 因为MUL的输出的范围很大, 需要使用的量化系数就很大, 所以对于sigmoid而言, 他们的输出就会被过大的量化系数进行量化, 使sigmoid的输出结果基本都为0, 那么所以的输出最后就都会为0 ,所以这个时候需要把最后的contact拿到CPU中进行运算, 这样我们在保证大部分速度的情况下, 能保证yolov8的精度.