1. 源码链接:
https://github.com/Shiaoming/ALIKE-cpp
2.已经安装好显卡驱动,cuda,cudnn,没安装的参考:
切记装cuda-11.x的版本,最好cuda11.3的版本
ubuntu重装系统后,安装cuda,cudnn-CSDN博客
3.安装opencv
下载所需要的版本,camke 安装即可
4.libtorch
官网给出了下载链接(用这个最好):https://download.pytorch.org/libtorch/cu113/libtorch-cxx11-abi-shared-with-deps-1.11.0%2Bcu113.zip
但是只支持cuda11.3的版本,由于系统是ubuntu 22.04,无法安装cuda11.3的版本,我这里是安装的cuda11.8的版本,需要pytorch的支持的版本也是11.8的,找到libtorch的下载网址:https://download.pytorch.org/libtorch/cu118,其他版本可参考:清华源和torch源_torch清华源-CSDN博客
将CMakeLists.txt中的torch路径指定到刚才下载的版本上:
set(Torch_DIR "/xx/libtorch/share/cmake/Torch")
然后开始编译:
mkdir build
cd build
cmake ..
make
编译完成后运行时报错:
terminate called after throwing an instance of 'c10::CUDAError' what(): CUDA error: an illegal memory access was encountered CUDA kernel errors might be asynchronously reported at some other API call,so the stacktrace below might be incorrect.
应该是torch版本不兼容,我下载的是torch2.0.0+cu118,应该用torch1.11.0+cu118,
这里不要用cuda12以上的版本,编译很浪费时间,直接换成cuda-11.x的版本,别问我怎么知道的
5.下载pytorch源码进行编译
参考:【libtorch】pytorch源码编译生成c++ 17 libtorch记录_libtorch编译-CSDN博客
(1)先下载pytorch源码,不要从官网下载source,里面third_party中的内容还要单独下载,直接用下面的命令下载:
git clone https://github.com/pytorch/pytorch.git
(2)切换到libtorch版本对应tag
cd pytorch
git tag -l *1.11.0* // git tag查看版本,git tag -l搜索特定版本的tag
git checkout v1.11.0 // 切换到特定tag的代码
(3)更新所有显示modified的submodule
git submodule sync
git submodule update --init --recursive
(4)cmake 安装:
cd pytorch
mkdir build && cd build
cmake -D CMAKE_BUILD_TYPE=RELEASE -D CMAKE_INSTALL_PREFIX=/opt/libtorch -D CMAKE_CXX_STANDARD=17 -D CMAKE_CXX_STANDARD_REQUIRED=ON -D USE_CUDA=ON -D USE_CUDNN=ON -DCMAKE_CUDA_ARCHITECTURES=86 ..
make -j4
make install
将CMakeLists.txt中的torch路径指定到刚才编译的版本上即可:
set(Torch_DIR "/opt/libtorch/share/cmake/Torch")
(5)编译时提示:
可忽略,也可参考:cmake配置libtorch报错Failed to compute shorthash for libnvrtc.so-CSDN博客,在CMakeLists.txt最开始加上find_package(PythonInterp REQUIRED)
(6)运行: ./demo 图像文件夹目录 模型 --cuda