专栏算法工具链模型尾部输出Argmax算子被分成四个部分,其中三个还运行在CPU上,这是为什么

模型尾部输出Argmax算子被分成四个部分,其中三个还运行在CPU上,这是为什么

已解决
Sampson2022-07-03
105
6

在onnx模型转换成bin文件时,模型尾部算子Argmax被自动拆分成了四个算子,然后三个运行在CPU上,这个是为什么呢?

附件:
算法工具链
评论5
0/1000
  • dangxj
    Lv.1

    您好, 我们想实现时序信号处理。即输入是1*n ,全连接多层,输出 1*n。 可以在GPU中运行 部署,加速吗。GPU部署对模型的限制有哪些?

    谢谢!

    2022-07-23
    0
    1
    • 颜值即正义回复dangxj:
      全连接层是支持运行在地平线加速硬件BPU上的,关于模型算子在部署时的限制欢迎参考用户手册的算子支持列表部分~

      2022-10-17
      0
  • Sampson
    Lv.1
    2022-07-03
    0
    0
  • Sampson
    Lv.1
    @颜值即正义
    2022-07-03
    0
    0
  • Sampson
    Lv.1
    2022-07-03
    0
    0
  • 颜值即正义
    Lv.2

    您好,由于硬件特性,只有conv支持int32高精度输出,若模型以其他算子结尾,则只能以int8输出,然后接一个反量化算子变成float32。由于argmax算子原始计算精度为int64,所以会有一个cast用来完成int8->int64,另外原来模型输出是三维的,所有会有reshape用来完成4维->3维。 如果您觉得这两个算子耗时过长,可以使用hb_model_modifier工具将这两个cpu节点删除,并在后处理中完成对应计算。

    2022-07-07
    0
    0