InvalidArgumentError: Each axis in Attr(axes) should be in the range of [0, -1]But current axis is:2

8 篇文章 2 订阅
4 篇文章 0 订阅

在C#程序中调用目标检测算法(C++、TensorRT),且每次只可以调用一次检测算法接口,多次调用时出现如下报错:

[12/16/2022-16:45:35] [E] [TRT] 3: [executionContext.cpp::nvinfer1::rt::ExecutionContext::setOptimizationProfileInternal::753] Error Code 3: Internal Error (Parameter check failed at: executionContext.cpp::nvinfer1::rt::ExecutionContext::setOptimizationProfileInternal::753, condition: profileIndex >= 0 && profileIndex < mEngine.getNbOptimizationProfiles()
)
[12/16/2022-16:45:35] [E] [TRT] 3: [executionContext.cpp::nvinfer1::rt::ExecutionContext::setBindingDimensions::949] Error Code 3: Internal Error (Parameter check failed at: executionContext.cpp::nvinfer1::rt::ExecutionContext::setBindingDimensions::949, condition: mOptimizationProfile >= 0 && mOptimizationProfile < mEngine.getNbOptimizationProfiles()
)
[12/16/2022-16:45:35] [E] [TRT] 3: [executionContext.cpp::nvinfer1::rt::ExecutionContext::getBindingDimensions::1001] Error Code 3: Internal Error (Parameter check failed at: executionContext.cpp::nvinfer1::rt::ExecutionContext::getBindingDimensions::1001, condition: mOptimizationProfile >= 0 && mOptimizationProfile < mEngine.getNbOptimizationProfiles()
)
[12/16/2022-16:45:35] [E] [TRT] 3: [executionContext.cpp::nvinfer1::rt::ExecutionContext::enqueueInternal::310] Error Code 3: Internal Error (Parameter check failed at: executionContext.cpp::nvinfer1::rt::ExecutionContext::enqueueInternal::310, condition: mOptimizationProfile >= 0 && mOptimizationProfile < mEngine.getNbOptimizationProfiles()
)


--------------------------------------
C++ Traceback (most recent call last):
--------------------------------------
Not support stack backtrace yet.

----------------------
Error Message Summary:
----------------------
InvalidArgumentError: Each axis in Attr(axes) should be in the range of [0, -1]But current axis is:2, input tensor's shape = [].
  [Hint: Expected current < in_dims.size(), but received current:2 >= in_dims.size():0.] (at ..\paddle/phi/kernels/funcs/unsqueeze.h:61)

在接收数据时发生错误:System.Runtime.InteropServices.SEHException (0x80004005): External component has thrown an exception.
   at YJ_Intelligent_OCR_Service.HttpOCRResults.API_OCR_system_path(String imgPath, Int32& results_size, Char[] results, Single[] scores)
   at YJ_Intelligent_OCR_Service.HttpOCRResults.ocr_system_AbsolutePath(String imageUrl) in E:\workspace\VS2017Projects\YJ-Intelligent-OCR\YJ-Intelligent-OCR-Service\YJ-Intelligent-OCR-Service\HttpOCRResults.cs:line 342
   at YJ_Intelligent_OCR_Service.HttpOCRResults.HandleRequest(HttpListenerRequest request, HttpListenerResponse response) in E:\workspace\VS2017Projects\YJ-Intelligent-OCR\YJ-Intelligent-OCR-Service\YJ-Intelligent-OCR-Service\HttpOCRResults.cs:line 189

从错误中观察,是TensorRT中出现的错误。

但是经过检查、调试,未找到是TensorRT内部什么问题导致的。

最终锁定问题在调用处,即每次调用算法接口的线程都是不相同的,导致已初始化的算法部件在不同的线程中使用而出错。

只要保证调用算法接口的线程始终在同一线程中,即可多次识别无问题。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值