文章目录
- 
   - 1. 介绍
- 
     - 1.1 导出onnx不成功
- 1.2 分析和解决方案
 
- 2. 案例
- 
     - 2.1 Asinh算子注册
- 
       - 2.1.1 导出onnx
- 2.1.2 算子注册
 
- 2.2 自定义算子的注册
- 
       - 2.1 直接导出自定义算子
- 2.2 自定义算子的注册并导出
 
- 2.3 导出带deformable conv 的onnx
- 
       - 2.3.1 直接导出deformable conv
- 2.3.2 注册并导出deformable_conv
 
 
- 结论
 
onnx算子的注册在工程实际是非常实用的方法,可以帮助我们在遇到从pytoch导出onnx时候出现 
算子不兼容的问题时, 
如何去解决。比较常见的,比如我们经常会从github中找到一些开源的代码,在导出onnx时发现会遇比如算子不兼容,或者好不容易导出onnx之后,转出tensort 模型时发现各种算子不兼容,这些在工程实际中是非常常见的问题。 
 
本节主要解决pytorch导出onnx出现不兼容的算子时通过注册算子的方法实现onnx导出。但注册的算子在推理时,还需要基于c++实现plugin从而实现推理,这部分在后续章节会详细介绍。
本节主要会介绍以下几个算子注册的案例:
- (1) asinh 算子的注册
- (2) 自定义的算子custom_op的注册
- (3) deformable conv 导出onnx
  
 导出onnx的效果如上,我们可以导出自定义的算子,或者注册算子(如Asinh, defom_conv2d), 使得导出的onnx看起来比较简洁,而不需要在onnx导出时跟踪一大堆中间的算子。



















