关于argmax在bpu上加速的问题

在语义分割后处理中,结果x.shape = [1,4,512,1024],使用x = torch.max(x, 1)[1] 希望在bpu上进行加速,实际上torch.max是执行在cpu上的

你好,bpu支持的算子是ArgMax,你是用是max算子,不一样的

请问使用argmax之后推理结果全为0,有遇到过类似的情况吗?麻烦解答一下

如果将 Argmax 放在后处理中实现,那么 Conv 在模型尾部会以 int32 高精度输出,整体精度表现更好;而如果此时存在性能瓶颈,则可以考虑将 Argmax 放在模型中实现 BPU 加速,同时由于 Argmax 缩小了最终输出层的 shape 大小,所以 IO 负载和反量化节点的耗时也会同步降低,对整体性能更加友好。

但 Conv+Argmax 的组合,会让 Conv 以 int8 低精度输出给 Argmax 进行后续计算,这就会存在一定的精度损失。

嗯嗯,了解,谢谢,就是我现在在语义分割最后一步 利用argmax得到的结果,在bin文件中全为0,而在onnx中正常,请问这种情况是什么原因