在深度学习模型基于各种pcb板子线上部署时,尤其是nvidia系列和黑芝麻,地平线J系列、瑞幸微等芯片,总会遇到一些不支持op的情况,尤其是对一些模型进行魔改,加入一些新的操作特性时,这时候就需要考虑对这些op进行特殊处理,下面基于N卡使用对此进行如下简单记录:
(1)遇到不支持op
按照一般深度学习模型部署节奏, 先保存模型权重->转换成onnx格式文件->转换成trt引擎进行推理。期间出现不支持的op时,那我们就需要定位考虑是哪个op导致的,然后针对该op进行替换或者通过cuda来手动实现。
》导出onnx时
对于不同版本onnx支持的op操作可以查看onnx/docs/Operators.md at main · onnx/onnx · GitHub, 而如果确定后续基于trt进行推理加速,对应不同版本trt对应onnx支持的op可以参考github链接查询: