ubuntu16.04在qt中使用libtorch预测pytorch模型的输出

第一步参考”c++调用pytorch模型并使用GPU进行预测“(https://blog.csdn.net/u010397980/article/details/89437628)博客中的方法。其他部分都没有问题。

在make的时候报错 error: ‘class at::DeprecatedTypeProperties’ has no member named ‘tensorFromBlob’,因为我的pytorch安装版本高于作者,接口形式改变了,修改为 auto img_tensor = torch::from_blob(float_image.data, {1, image.rows, image.cols, 3}).permute({0, 3, 1, 2}).to(torch::kCUDA); inputs.emplace_back(img_tensor); 可正常运行。

 

因为本人不熟悉cmake方法,想在qt中使用libtorch,这样更加方便。

qt的配置环境如下:

INCLUDEPATH += /usr/include \
               /path_to_libtorch/include \
               /path_to_libtorch/include/torch/csrc/api/include

LIBS += -L/usr/lib \
        -L /path_to_libtorch/lib \
        -L/usr/local/cuda-9.0/lib64

LIBS += -lstdc++fs

LIBS += -lopencv_imgproc -lopencv_core -lopencv_highgui -lopencv_imgcodecs

LIBS += -lc10 -lc10_cuda -ltorch -lthnvrtc -lcaffe2_gpu -lcaffe2 -lgomp \
               -lcudart -lnvToolsExt

配置完后还有14个报错,其中一个如下

/media/zw-cj-2/4A2250F32250E58B/qtProjects/libtorchTest/liibtorchTest/libtorchTest/main.cpp:-1: error: undefined reference to `c10::Error::Error(c10::SourceLocation, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&)'

最终的解决方法是,在qt的配置文件中添加

QMAKE_CXXFLAGS += -D_GLIBCXX_USE_CXX11_ABI=0,主要参考了https://github.com/pytorch/pytorch/issues/13541

到此可编译成功并运行。

 

  • 0
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值