当我从 Matlab 调用 mex api 时,我遇到了一个意外的标准异常。
我将 2 个 pytorch DNN 模型导出到“A.pt”和“B.pt”文件。
我实现了从“.pt”文件加载模型并运行模型(转发)的 c++ 函数。
c++ 实现工作正常,我可以从模型中得到正确的结果。
我将加载和运行转发函数构建到“.dll”库中,并实现了一个可以调用它们的 mex api 函数。
当我在Matlab环境中调用mex api时,2个模型加载正常,第一个模型向前运行正常。
但是,当向前运行第二个模型时,我得到了以下异常。
MEX 文件中的意外标准异常
What():以下操作在 TorchScript 解释器中失败。
TorchScript 的回溯(最后一次调用):
RuntimeError:TorchScript 解释器中的以下操作失败。
TorchScript 的回溯(最后一次调用):
RuntimeError:LoadLibraryA 中的错误
我不知道为什么 c++ 实现可以正常工作,但是当通过 Matlab 的 mex api 调用它时会发生异常。
因为加载和运行前向功能没有改变,所以我期望得到完全相同的结果。
由于没有调用堆栈打印,因此更难以调试。
有没有办法获得调用堆栈?
请给我任何建议。
提前致谢。
-环境 - - - - - - - - - - - - - - - -
c++ 编译器:Visual Studio 2017 社区
matlab : R2020a
火炬:1.6
火炬:1.5
蟒蛇:3.6
库达:10.2