qt 使用 libtorch

转载:https://blog.youkuaiyun.com/a15005784320/article/details/100349677

191015 补充 第一次编译cuda版本的,一定要注意 gcc版本 nvcc版本 cuda版本 错了就哭吧


190914 补充 在别人电脑上有装了两次,出现了新的问题,补充在最下边遇到的问题


花了整整两天才把libtorch在 ubuntu+qt上配置好
趁着刚编译完自己记录下
主要参考步骤
https://github.com/pytorch/pytorch
我发现stack overflow真是个好东西,基本上所有错误都有答案

使用有两种方式,我都是在qt上使用,只介绍qt使用方法

  • 1 下载编译好的直接使用(跟我现有开源库各种冲突 反正和opencv和itk不能同时用
  • 2 下载源码自己编译

  • 1首先说第一种方式

如果单纯使用libtorch 超容易官方提供好编译后的版本
跟自己的对应起来下载直接用
在这里插入图片描述
qt使用方法
cmake里

find_package(Torch REQUIRED)
include_directories(  ${TORCH_INCLUDE_DIRS} )
target_link_libraries(
    ${PROJECT_NAME}
    "${TORCH_LIBRARIES}"
    )	
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6

TORCH_DIR写
/下载目录/share/cmake/Torch
在这里插入图片描述

测试

torch::Tensor tensor = torch::rand({2, 3});
std::cout << tensor << std::endl;
  • 1
  • 2

结果
在这里插入图片描述


  1. 第二种编译方式

安装 Anaconda
下载直接点点点就行,就一个选项,是否帮忙设置环境,选择是就可以
Anaconda
安装后输入python试一下
我这样就是正常的
在这里插入图片描述
下载源码

git clone --recursive https://github.com/pytorch/pytorch
  • 1

国内网速下载不好,时间很久

cd pytorch
git submodule sync
git submodule update --init --recursive
  • 1
  • 2
  • 3

又是很久很久
结束之后设置

export CMAKE_PREFIX_PATH=${CONDA_PREFIX:-"$(dirname $(which conda))/../"}
python setup.py build --cmake-only
ccmake build  # or cmake-gui build
  • 1
  • 2
  • 3

我需要opencv ,搜索opencv mode里有个use opencv 勾选上,
让后设置opencv地址(据说不支持opencv4以上版本,我用的3.16
让后我的显卡是a卡,use cuda取消
cudnn同样不能用 use cudnn取消
test反正我编译什么都不选 bulid test取消
让后congigure 和generate就可以了

当然了,可以不用cmake-gui设置
直接这样可以(如果用cuda就前两个设置成1

USE_CUDA=0 USE_MKLDNN=0 BUILD_TEST=0 python setup.py install
  • 1

这个很快安装好就可以了

qt调用
cmake里

find_package(Torch REQUIRED)
include_directories(  ${TORCH_INCLUDE_DIRS} )
target_link_libraries(
    ${PROJECT_NAME}
    "${TORCH_LIBRARIES}"
    )	
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6

TORCH_DIR写 /build/lib.linux-x86_64-3.7/torch/share/cmake/Torch 目录自己生成的

/home/yx/文档/pytorch/build/lib.linux-x86_64-3.7/torch/share/cmake/Torch
  • 1

遇到的错误

差不多cmake错了10几处
一个一个排查最后发现原因主要两处
1 需要安装 Anaconda 本来不想装,一直用自己原来下载的,发现无论如何装不好
2 下载源码后务必
git submodule update --init --recursive
然而这玩意很慢很慢,一共就300M左右,(加上400M左右的源码)我一共下载了快四个小时

下载过程中分模块下载,会经常卡主,让后一段时间没有反应,就是留一个.git文件在对应模块文件夹里(third_party这个文件夹下边很多子文件夹里),卡主一段时间后git调到下一个模块下载,让后安装时候就会报错.

关键如果再重复 git submodule update --init --recursive 下载,会直接下载失败.让后我就错在这里了,cmake错误日志一个一个看下去发现全是这里的错误.

解决办法

挨个浏览third_party文件下每个子文件夹,把里边只有一个.git的删除掉,让后重新
git submodule update --init --recursive
让后又下载失败,但是数量少了,接着再重复删.git重新
git submodule update --init --recursive
直到每一个文件夹下边都有东西
没办法,网不好
在这里插入图片描述
3.
Building wheel torch-1.3.0a0+a024e1e
– Building version 1.3.0a0+a024e1e
Traceback (most recent call last):
File “setup.py”, line 759, in
build_deps()
File “setup.py”, line 313, in build_deps
check_pydep(‘yaml’, ‘pyyaml’)
File “setup.py”, line 368, in check_pydep
raise RuntimeError(missing_pydep.format(importname=importname, module=module))
RuntimeError: Missing build dependency: Unable to import yaml.
Please install it via conda install pyyaml or pip install pyyaml

解决办法 conda install pyyaml

  1. conda无法使用

vim ~/.bashrc
最后添加 export PATH=~/anaconda3/bin:$PATH
source ~/.bashrc

  1.  

Building wheel torch-1.3.0a0+a024e1e
– Building version 1.3.0a0+a024e1e
cmake --build . --target install --config Release – -j 12
No such file or directory
CMake Error: Generator: execution of make failed. Make command was: “/home/yx/anaconda3/bin/ninja” “-j” “12” “install”
Traceback (most recent call last):
File “setup.py”, line 759, in
build_deps()
File “setup.py”, line 321, in build_deps
cmake=cmake)
File “/home/yx/文档/pytorch/tools/build_pytorch_libs.py”, line 63, in build_caffe2
cmake.build(my_env)
File “/home/yx/文档/pytorch/tools/setup_helpers/cmake.py”, line 330, in build
self.run(build_args, my_env)
File “/home/yx/文档/pytorch/tools/setup_helpers/cmake.py”, line 143, in run
check_call(command, cwd=self.build_dir, env=env)
File “/home/yx/anaconda3/lib/python3.7/subprocess.py”, line 347, in check_call
raise CalledProcessError(retcode, cmd)
subprocess.CalledProcessError: Command ‘[‘cmake’, ‘–build’, ‘.’, ‘–target’, ‘install’, ‘–config’, ‘Release’, ‘–’, ‘-j’, ‘12’]’ returned non-zero exit status 1.

解决办法
安装最新的Cmake版本。
然后从pytorch目录中删除“ build”文件夹,然后再次运行“ python setup.py install”。
在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值