onnx利用工具onnx-tensorrt转换为tensorrt,为什么提示不认识MultiscaleDeformableAttnPlugin_TRT 算子,这个算子官方实现了插件啊
[MultiscaleDeformableAttnPlugin_TRT -> "1579"]:4722 In function importFallbackPluginImporter:
[8] Assertion failed: creator && "Plugin not found, are the plugin name, version, and namespace correct?"
援引GPT回答:
这个错误通常是由于插件未正确注册导致的。当使用onnx-tensorrt将ONNX模型转换为TensorRT模型时,需要确保所有自定义插件都已正确注册。
在使用onnx-tensorrt转换之前,您需要将自定义插件编译为TensorRT可识别的库,并将其加载到TensorRT中。
请确保您已按照TensorRT的插件开发文档正确实现了插件,并将插件编译为动态链接库(.so文件)。然后,使用trtexec
命令行工具测试插件是否能正常工作。
如果插件在trtexec
中运行正常,但在使用onnx-tensorrt转换时出现问题,您可以尝试以下步骤:
LD_LIBRARY_PATH
环境变量中。import ctypes
import tensorrt as trt
# 加载插件库
ctypes.CDLL("path/to/your/plugin.so")
# 创建TensorRT的插件注册器
trt.init_libnvinfer_plugins(None, '')
# 创建TensorRT构建器并进行模型转换
builder = trt.Builder(...)
network = builder.create_network(...)
通过这些步骤,您应该能够成功注册并使用自定义插件。如果问题仍然存在,可能需要检查插件的实现代码,以确保正确性。