Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

onnx->trt in C++ get error:this 是 nullptr #10

Open
guanhaiye opened this issue Sep 11, 2023 · 5 comments
Open

onnx->trt in C++ get error:this 是 nullptr #10

guanhaiye opened this issue Sep 11, 2023 · 5 comments

Comments

@guanhaiye
Copy link

guanhaiye commented Sep 11, 2023

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。

@mingj2021
Copy link
Owner

orig_im_size 这个参数不需要啊,

@mingj2021
Copy link
Owner

这个参数 跟后处理有关,在模型导出前,我把这部分代码在 forward中删除了,你可以试试或者想一想,为什么要删除。这个工程我不在维护了,好久了,没什么人气,本意也是介绍模型转化的常规思路。

@guanhaiye
Copy link
Author

这个参数 跟后处理有关,在模型导出前,我把这部分代码在 forward中删除了,你可以试试或者想一想,为什么要删除。这个工程我不在维护了,好久了,没什么人气,本意也是介绍模型转化的常规思路。

能否解答一下为什么要在forward中删除吗,对这块不是很了解,请解惑一下谢谢

@mingj2021
Copy link
Owner

orig_im_size ,跟这个变量相关的代码,涉及到动态分配内存问题,而c++中 trt 需要提前为 input output分配内存的(创建上下文context时), 当trt 执行到跟这变量这块相关代码时,就会报错的,所以在forward函数中,删除这段代码,并移植到 后处理部分。

@mingj2021
Copy link
Owner

可以自己把这个参数加进去,调试看看,动手实现,预处理 和后处理 这段代码,任何模型都绕不开这块的,建议平时多练练哈!

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

2 participants