问题描述
在python下使用TensorRT将onnx模型转化为序列化engine模型时输出如下错误:
[TRT] [E] 10: [optimizer.cpp::computeCosts::2011] Error Code 10: Internal Error (Could not find any implementation for node MaxPool_73.)
解决思路1
按照网上的其他帖子的解决思路–增大工作空间 (不适用于本案例)
# python脚本
import tensorrt as trt
trt_logger = trt.Logger(trt.Logger.INFO)
builder = trt.Builder(trt_logger)
config = builder.create_builder_config()
config.max_workspace_size = 2 << 30 # 就是增大这个数 比如更改为: 4 * (2 << 30)
# ...TensorRT/bin/trtexec 可执行文件
trtexec --onnx=/path/to/load/.onnx --saveEngine=/path/to/save/.engine --workspace=1024
## 通过更改 --workspace 增大工作空间,例如:--workspace=4096
解决思路2
python脚本中显示enable了TacticSource(策略源)导致含有node MaxPool_73实现的策略源没有enable
# python脚本
## 原本为:
config.set_tactic_sources(1 << int(trt.TacticSource.CUBLAS))
## 将其注释掉,因为默认TensorRT中默认enable所有策略源
# config.set_tactic_sources(1 << int(trt.TacticSource.CUBLAS))
更多关于TensorRT的TacticSource介绍请参考官方文档:
tensorrt.TacticSource
tensorrt.IBuilderConfig.set_tactic_sources
在尝试使用Python的TensorRT库将ONNX模型转换为序列化engine模型时遇到错误,错误信息提及无法找到nodeMaxPool_73的实现。两个解决思路被提出:一是增大工作空间大小,但在此案例中无效;二是检查并确保启用所有TacticSource,避免因特定策略源未启用导致的问题。官方文档和TacticSource设置是解决问题的关键。
1129

被折叠的 条评论
为什么被折叠?



