日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

深度学习--第1篇(续): Ununtu16.04源码编译libtorch(GUDA版本)环境配置

發布時間:2024/1/18 编程问答 26 豆豆
生活随笔 收集整理的這篇文章主要介紹了 深度学习--第1篇(续): Ununtu16.04源码编译libtorch(GUDA版本)环境配置 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

Ubuntu16.04+libtorch編譯

  • 1.參考博客
  • 2.準備工作
  • 3.Libtorch編譯安裝
    • 3.1 下載Pytorch源碼
    • 3.2 下載libtorch庫
    • 3.3 CMakeLists編寫
  • 4.低版本兼容問題(權重加載)

1.參考博客

Pytorch+libtorch編譯
libtorch源碼編譯

2.準備工作

筆者采用Anaconda的虛擬環境下安裝Pytorch 1.5.0版本,具體版本如下:torchvision=0.6.0,python=3.6,CUDA=10.1, cudnn=7.6.5
上述的需要預先安裝完成

具體安裝步驟可參考上一篇博客:Pytorch安裝

3.Libtorch編譯安裝

3.1 下載Pytorch源碼

# 1.切換到conda的虛擬環境下 source activate wind# 2 由于pytorch的官網下載速度慢,可以參考筆者的另一篇,添加清華的鏡像源下載 [清華鏡像源安裝方法](https://blog.csdn.net/qq_37568167/article/details/105620960)# 3.安裝依賴庫, 需要注意 cmake版本采用3.5.1,如果版本過高會存在編譯不通過 conda install numpy ninja pyyaml mkl mkl-include setuptools cffi typing_extensions future six requests dataclasses# 4.安裝對CUDA的支持包, 對應自己版本的cuda,筆者的時10.1 conda install magma-cuda101 # or [ magma-cuda102 | magma-cuda100 | magma-cuda92 ] # conda install -c pytorch magma-cuda101 # 5. 編譯Pytorch # 由于官網的下載較慢,筆者采用國內gitee上進行下載, 下載時間大約需要1.5個小時 git clone https://gitee.com/wind_x/pytorch.git# 6. 下載完成后,進行獲取其中的子模塊 cd pytorch git submodule sync git submodule update --init --recursive# 7. 選擇自己需要的Pytorch版本,需要與anaconda安裝的pytorch版本對應,筆者的是1.5.0版本 git tag -l git checkout v1.5.0# 8.編譯pytorch, 需要大約2個小時;安裝扔需要2個小時,共計4個小時 export CMAKE_PREFIX_PATH=${CONDA_PREFIX:-"$(dirname $(which conda))/../"} mkdir build cd build cmake .. make -j4 sudo make install# 9.編譯成功后,會生成libtorch.so動態鏈接庫,存儲位置 動態鏈接庫: /usr/local/lib/libtorch.so 功能包: /usr/local/share/cmake/Torch

3.2 下載libtorch庫

注意: libtorch版本向上兼容,即高版本的pytorch和低版本的libtorch(例如筆者:Pytorch=1.5.0, libtorch=1.3.0), 一定要選擇下載c++11的預編譯版本,使用ABI編譯的版本

由于筆者采用的時pytorch=1.5.0, 且 cuda=10.1, 因此下載libtorch<=1.5.0的庫,但是cuda需要對應。 具體的libtorch下載地址:libtorch=1.3.0, cuda=10.1

https://download.pytorch.org/libtorch/cu101/libtorch-cxx11-abi-shared-with-deps-1.3.0.zip

其中加粗部分可以根據自己的需求進行更換,主要是cuda版本號pytorch版本號 (libtorch1.6.0版本之前的都可以)

# 解壓,解壓后得到的libtorch文件夾便是可以直接使用的 unzip libtorch-cxx11-abi-shared-with-deps-1.3.0.zip

3.3 CMakeLists編寫

# 使用libtorch時,需要在CMakeLists.txt中添加 # 表示的時通過3.3節libtorch下載解壓后的文件夾位置 set(CMAKE_PREFIX_PATH "/home/lenovo/libtorch") add_definitions(-D_GLIBCXX_USE_CXX11_ABI=1)# 尋找torch包時可以放在其他的下面 find_package(Torch REQUIRED)

較為完整的CMakeLists.txt文件

cmake_minimum_required(VERSION 3.0.2) project(CNN_SLAM)set(CMAKE_BUILD_TYPE "Release") set(CMAKE_CXX_FLAGS "-std=c++11") set(CMAKE_CXX_FLAGS_RELEASE "-O3 -Wall -g")## Find catkin macros and libraries find_package(catkin REQUIRED COMPONENTScv_bridgeroscpprospysensor_msgsstd_msgs )## System dependencies are found with CMake's conventions find_package(OpenCV 3.0 REQUIRED) find_package(Eigen3 REQUIRED)catkin_package()include_directories(# include${catkin_INCLUDE_DIRS}${OpenCV_INCLUDE_DIRS}${EIGEN_INCLUDE_DIRS} )set(CMAKE_PREFIX_PATH "/home/lenovo/libtorch") add_definitions(-D_GLIBCXX_USE_CXX11_ABI=1) find_package(Torch REQUIRED) include_directories(include/)## Declare a C++ library add_library(${PROJECT_NAME} SHAREDsrc/cnn_slam.cpp )target_link_libraries(${PROJECT_NAME} ${catkin_LIBRARIES} ${OpenCV_LIBS} ${EIGEN_LIBS} ${TORCH_LIBRARIES} )## Declare a C++ executable add_executable(CNN_SLAM_node CNN_SLAM_node.cpp)target_link_libraries(CNN_SLAM_node ${PROJECT_NAME})

4.低版本兼容問題(權重加載)

# 對于v1.1.0 std::shared_ptr<torch::jit::script::Module> module = torch::jit::load("./model.pt");# >1.1.0 torch::jit::script::Module module = torch::jit::load("./model.pt");

總結

以上是生活随笔為你收集整理的深度学习--第1篇(续): Ununtu16.04源码编译libtorch(GUDA版本)环境配置的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。