当我从Matlab调用mex-api时,我得到了一个意外的标准异常。
我将2个pytorch DNN模型导出到"A.pt"one_answers"B.pt"文件中。
我实现了从".pt"文件加载模型并运行模型(正向(的c++函数。
c++的实现工作得很好,我可以从模型中得到适当的结果。
我建立了负载&将函数向前运行到".dll"库中,我实现了一个可以调用它们的mex-api函数。
当我在Matlab环境中调用mex-api时,两个模型加载正常,第一个模型正常向前运行。
然而,当运行第二个模型时,我得到了以下异常。
MEX文件出现意外的标准异常
What((:以下操作在TorchScript解释器中失败。
TorchScript的回溯(最后一次调用(:
RuntimeError:以下操作在TorchScript解释器中失败。
TorchScript的回溯(最后一次调用(:
运行时错误:LoadLibraryA 中有错误
我不知道为什么c++实现工作得很好,但当通过Matlab的mex-api调用它时会发生异常。
因为负载&向前运行函数没有变化,我期望得到完全相同的结果。
由于没有调用堆栈打印,因此调试更加困难。
有什么方法可以得到调用堆栈吗?
请给我一些建议。
提前谢谢。
-环境------------------------------
c++编译器:visual studio 2017社区
matlab:R2020a
libtorch:1.6
pytorch:1.5
python:3.6
cuda:10.2
根据Cris Luengo先生的评论,我通过将所有libtorch dll复制到Matlab自己的bin文件夹中来解决这个问题。有几个重复的文件,但我覆盖了它们。我不确定它是否安全,所以备份以前的dll可能是个不错的选择。谢谢克里斯·卢恩戈先生。