visual studio编译qt+libtorch,载入模型时报错。
出错信息:
使用visual studio 编译QT+libtorch报错
未加载kernelbase.pdb,kernelbase.pdb 包含查找模块 KernelBase.dll 的源文件所需的调试信息。
0x00处(位于 view64.exe 中)有未经处理的异常: Microsoft C++ 异常: std::length_error,位于内存位置 0x00 处。
原因:
libtorch版本与QT编译器不匹配。例如,Debug版本的libtorch必须使用QT Debug版本进行编译。如果不匹配,有些功能例如tensor可以正常使用,但是加载模块MODULE时会报错。
解决方法:
修改QT编译器或Libtorch编译版本,使其一致。文章来源:https://www.toymoban.com/news/detail-525545.html
可以用以下代码测试文章来源地址https://www.toymoban.com/news/detail-525545.html
#undef slots
#include<torch/script.h>
#include<torch/torch.h>
#define slots Q_SLOTS
int main(int argc, char* argv[])
{
//test torch
auto device = torch::Device(torch::kCUDA);
auto model = ConvReluBn(3, 4, 3);//自己写好的模块
//test qt
QApplication a(argc, argv);
MainWindow w;
w.show();
return a.exec();
}
到了这里,关于QT+ Libtorch Microsoft C++ 异常: std::length_error的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!