LibTorch(Qt)学习笔记LibTorch(Qt)使⽤笔记
1 qt 使⽤ libtorch
使⽤有两种⽅式,我都是在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}"
)
TORCH_DIR写 /下载⽬录/share/cmake/Torch
测试
torch::Tensor tensor = torch::rand({2,3});
std::cout << tensor << std::endl;
结果
2. 第⼆种编译⽅式
安装 Anaconda
下载直接点点点就⾏,就⼀个选项,是否帮忙设置环境,选择是就可以
安装后输⼊python试⼀下
我这样就是正常的
下载源码
git clone --recursive github/pytorch/pytorch
国内⽹速下载不好,时间很久
cd pytorch
git submodule sync
git submodule update --init --recursive
⼜是很久很久
结束之后设置
export CMAKE_PREFIX_PATH=${CONDA_PREFIX:-"$(dirname $(which conda))/../"}
python setup.py build --cmake-only
ccmake build # or cmake-gui build
我需要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
这个很快安装好就可以了
qt调⽤
cmake⾥
find_package(Torch REQUIRED)
include_directories( ${TORCH_INCLUDE_DIRS})
target_link_libraries(
${PROJECT_NAME}
"${TORCH_LIBRARIES}"
)
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. 需要安装 Anaconda 本来不想装,⼀直⽤⾃⼰原来下载的,发现⽆论如何装不好
2. 下载源码后务必
git submodule update --init --recursive
下载过程中分模块下载,会经常卡主,让后⼀段时间没有反应,就是留⼀个.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 <module>
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
4. conda⽆法使⽤
vim ~/.bashrc
# 最后添加 export PATH=~/anaconda3/bin:$PATH
source ~/.bashrc
5.
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 <module>
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)
cmake如何使用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”。
2 使⽤libtorch模型推理
这两天做了qt下利⽤libtorch对模型进⾏推理.整理下⽅便⾃⼰今后使⽤
1. 利⽤opencv 读取单张png 输⼊torch 结果保存⽂png(cpu)
2. 利⽤vkt 批量读取pngs 依次输⼊torch 结果转化为stl三维模型(gpu)
3. 利⽤itk批量读取dcm 依次输⼊torch 结果转化为stl三维模型(gpu)
libtorch知识点
libtorch多线程并⾏运算
libtorch使⽤多gpu
libtorch 显存到内存转换
其余知识点
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。
发表评论