onnx->trt in C++ get error:this 是 nullptr
comment the params "orig_im_size" @torch.no_grad() def forward( self, image_embeddings: torch.Tensor, point_coords: torch.Tensor, point_labels: torch.Tensor, mask_input: torch.Tensor, has_mask_input: torch.Tensor, # orig_im_size: torch.Tensor, ): orig_im_size= torch.tensor([1500, 2250], dtype=torch.float) 在linux中导出onnx模型(TensorRT8.5.1.7) 在windows C++端加载onnx,在进行onnx->trt时报错 nvinfer.h中return mImpl->getName(); 报错:this 是 nullptr。
orig_im_size 这个参数不需要啊,
这个参数 跟后处理有关,在模型导出前,我把这部分代码在 forward中删除了,你可以试试或者想一想,为什么要删除。这个工程我不在维护了,好久了,没什么人气,本意也是介绍模型转化的常规思路。
这个参数 跟后处理有关,在模型导出前,我把这部分代码在 forward中删除了,你可以试试或者想一想,为什么要删除。这个工程我不在维护了,好久了,没什么人气,本意也是介绍模型转化的常规思路。
能否解答一下为什么要在forward中删除吗,对这块不是很了解,请解惑一下谢谢
orig_im_size ,跟这个变量相关的代码,涉及到动态分配内存问题,而c++中 trt 需要提前为 input output分配内存的(创建上下文context时), 当trt 执行到跟这变量这块相关代码时,就会报错的,所以在forward函数中,删除这段代码,并移植到 后处理部分。
可以自己把这个参数加进去,调试看看,动手实现,预处理 和后处理 这段代码,任何模型都绕不开这块的,建议平时多练练哈!