MEX文件中出现意外的标准异常(pytorch模型转发)



当我从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可能是个不错的选择。谢谢克里斯·卢恩戈先生。

相关内容

  • 没有找到相关文章