推理框架
Ehrich wen
人工智能、算法集成、TensorRT、OpenVINO、TNN&MNN、C++后端开发
展开
-
TensorRT 3D反卷积不支持非对称padding
转trt模型时报错: ASSERT(begPadding == endPadding && “TensorRT does not support asymmetrical padding for 3D deconvolutions!”, ErrorCode::kUNSUPPORTED_NODE);原因:TensorRT目前还不支持3D反卷积非对称padding解决方法:找到源码TensorRT/parsers/onnx/builtin_op_importers.cpp文件,找到Con原创 2022-01-26 16:32:31 · 3330 阅读 · 0 评论 -
TensorRT动态卷积自定义op(多输入卷积/权重动态卷积)
随着算法模型的不断演变,常规的模型结构已经不能满足算法人员的需求,于是衍生出形色各异的op,比如动态卷积,即前向传播过程中,weight也会随着输入的不同而发生改变。声明:所谓动态卷积指在前向传播过程中weight发生变化此处的动态卷积只是笔者对该op的一种称呼TensorRT通过ConvMultiInput来实现这种卷积(多输入卷积),但是只支持INT8显式量化目前发现只在TensorRT中存在动态的问题,其他如onnx、OpenVINO不存在该问题动态卷积大概长下面这个样子。其中inpu原创 2022-01-06 17:38:51 · 2252 阅读 · 8 评论 -
解决TensorRT报错:Assertion Error in trtSmToCask: 0 (Unsupported SM.)
错误信息:E20211126 11:55:13.654 140412916315904 tensorrt.cpp:10] …/rtSafe/cuda/caskUtils.cpp (98) - Assertion Error in trtSmToCask: 0 (Unsupported SM.)原因:TensorRT版本与cuda或者cudnn版本不匹配,如笔者的TensorRT版本为7.2.1,而cuda为最新的11.5版本,其中cuda版本过高无法适配:解决:重装cuda或者TensorRT原创 2021-11-27 10:01:58 · 2539 阅读 · 0 评论 -
TensorRT动态输入尺寸下的自定义op巨坑
首先,关于自定义插件基本问题,这里我就不再赘述了如何写一个插件:参考此处如何在python 或 C++中使用自定义插件:参考此处自定义op需要编写:getOutputDimensions,我们会根据inputs来推断output dimensions,如:nvinfer1::DimsExprs DReflectPadPlugin::getOutputDimensions(int outputIndex, const nvinfer1::DimsExprs *inputs, int nbInputs,原创 2021-11-19 17:06:41 · 1424 阅读 · 0 评论 -
基于python实现onnx转TensorRT自定义op
TensorRT源码上提供了一些python的samples,但是说好的提供onnx_packnet这个sample是onnx2trt自定义op的示例,但却没有写完整,不熟悉的人很难看懂。但其实Python版本的onnx2trt自定义op很简单,过程如下:找到一个需要自定义op的C++插件(或者自己写)如:grid_sampler使用cmake将上述grid_sampler相关文件生成C++库文件libtensorrtplugins.so在Python文件的最开头加上一句:ctypes.CDLL("原创 2021-09-15 21:47:32 · 847 阅读 · 0 评论 -
openvino运行CMake时找不到InferenceEngineConfig.cmake,TBBConfig.cmake,ngraphConfig.cmake三个文件
运行时报错:CMake Error at common/utils/CMakeLists.txt:15 (find_package):By not providing “FindInferenceEngine.cmake” in CMAKE_MODULE_PATH thisproject has asked CMake to find a package configuration file provided by“InferenceEngine”, but CMake did not find o原创 2021-07-01 16:01:02 · 2230 阅读 · 0 评论 -
Linux(Ubuntu)安装ONNXRuntime C++ API
安装python3apt-get install python3安装pip3apt-get install python3-pippip3 install --upgrade pip安装依赖pip3 install --upgrade setuptoolspip3 install --upgrade wheelpip3 install numpy安装cmakeapt-get install cmake下载onnxruntime(建议按照官方文档直接clone,.原创 2021-05-13 11:38:14 · 7926 阅读 · 8 评论