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版本)环境配置相关推荐

  1. Ubuntu 16.04 源码编译安装 uhd gnuradio

    Ubuntu 16.04 源码编译安装 uhd & gnuradio 环境介绍 UHD安装 1 安装依赖 2 编译 3 测试安装结果 4 配置 USB gnuradio安装 1 安装依赖 2 ...

  2. Ubuntu 16.04源码编译安装Apache 2.4.25教程

    这篇文章主要为大家详细介绍了Ubuntu 16.04源码编译安装Apache 2.4.25,具有一定的参考价值,感兴趣的小伙伴们可以参考一下 本文为大家介绍了Ubuntu 16.04源码编译安装Apa ...

  3. 低CUDA算力显卡用上高版本pytorch(ubuntu18.04源码编译特定版本pytorch(v1.10.0))

    低CUDA算力显卡用上高版本pytorch(ubuntu18.04源码编译特定版本pytorch(v1.10.0)) 一 电脑配置 二 正常情况下源码编译步骤 三 我的编译过程及出现的问题 首先 安装 ...

  4. ubuntu安装python_ubuntu18.04下源码编译安装最新版本Python3

    原文链接:ubuntu18.04下源码编译安装最新版本Python3 截止到2019年4月9日,Python3最新的版本是3.7.3. 在ubuntu18.04中已经安装的Python3版本是3.6. ...

  5. Anaconda Python3.6 OpenCV4.1.0 Ubuntu 16.04源码编译

    Anaconda Python3.6 OpenCV4.1.0 Ubuntu 16.04源码编译 转载于:https://blog.csdn.net/phdsky/article/details/782 ...

  6. OpenCPN + Ubuntu 18.04 源码编译 + Codeblocks 调试 + wxFormBuilder 安装

    OpenCPN + Ubuntu 18.04 源码编译 文章目录 一.参考资料 二.源码编译流程 三.利用 IDE 编译 四.利用 IDE 调试 四.测试界面开发工具 一.参考资料 OpenCPN - ...

  7. 【CV实战】Ubuntu18.04源码编译安装opencv-3.4.X+测试demo

    之前在Windows上借助VS编译opencv,很轻松就能搞定,到Linux下踩了坑,Ubuntu下编译.卸掉重编.搞了几次,还把系统库给卸载掉了(sudo apt-get remove python ...

  8. opencv4.0在linux下编译,Ubuntu 18.04源码编译安装OpenCV 4.0步骤

    Ubuntu 18.04下标准常规安装方法安装的OpenCV版本比较低,想尝鲜使用4.0版本,只好源码安装. 安装环境 OS:Ubuntu 18.04 64 bit 显卡:NVidia GTX 108 ...

  9. opencore0.6.3_Ubuntu 18.04 源码编译安装 PHP 7.3

    记录在Ubuntu 18.04下源码编译安装 PHP 7.3的过程步骤. 0.下载PHP源代码 首先需要从PHP官网下载PHP7.3.1的源代码,保存为php-7.3.1.tar.xz. http:/ ...

最新文章

  1. 原理+代码实战 | 双目视觉中的极线校正
  2. get/post时中文乱码问题的解决办法
  3. 功能整合(二):轮播图(可控)、事件流
  4. vagrant使用centos的环境安装..
  5. .Text 支持二级域名之二
  6. 一些社会运行的底层规律,和你的利益息息相关
  7. 【Java】对象容器——集合
  8. 如何为新项目创建新的空分支
  9. Atitit 圣爱提拉克斯工作最紧张的时候 11月,圣爱提拉克斯进入了一年中工作最紧张的时候。 过去,他每个月都要撰写不少文章、与不同的人愉快地交谈,教育他们沿着圣爱提拉克斯创造的世界上最伟大的圣
  10. 软件设计师考试历年试题汇总
  11. 第十一届蓝桥杯校内赛/校内选拔赛(2020蓝桥杯校选3-java)部分解题思路
  12. 怎么样计算机械功率,电功率与机械功率的换算公式
  13. C语言求:哥尼斯堡七桥问题
  14. MPB:西湖大学鞠峰组-​​微生物群落定量宏基因组和宏转录组
  15. python百钱买百鸡问题答案_Python学习-算法-百钱买百鸡的问题
  16. 清理Elasticsearch中过期的日志索引
  17. Protel 2004 电路设计 鲁捷,焦振宇,孟凡文编著
  18. 2018年春计算机教学计划,2018年春季教学计划表
  19. Windows系统C语言代码一览
  20. c语言五子棋游戏心得体会,下五子棋执白子之心得

热门文章

  1. 几年了,我依然记得这故事的名字
  2. LINUX系统不识别NTFS格式的硬盘
  3. React 引入vconsole
  4. 简单的手机记事本有哪些?
  5. 蒸汽幻想服务器修改,月影科技-蒸汽幻想服务端(附带网站+单机IP)
  6. vue3的SEO优化
  7. java 压缩和解压lzo文件
  8. 有限的时间精力,无止境的事业
  9. 主流内存数据库功能特性和性能比较
  10. 方法导论 | α、β收益及其策略构建