libTorch的安装

在官网https://pytorch.org/选择与cuda版本对应的libtorch下载,然后解压即可

TorchVision编译

升级CMake

wget https://cmake.org/files/v3.20/cmake-3.20.0-linux-x86_64.tar.gz
tar -xzvf cmake-3.20.0-linux-x86_64.tar.gz
#解压出来的包,将其放在 /opt 目录下,其他目录也可以,主要别以后不小心删了
sudo mv cmake-3.20.0-linux-x86_64 /opt/cmake-3.20.0
#建立软链接
sudo ln -sf /opt/cmake-3.20.0/bin/*  /usr/bin/
#查看 cmake 版本
cmake --version

编译安装TorchVision

下载:https://github.com/pytorch/vision

注意:因为Ubuntu默认是python3.5,故最好下载Vision0.6.1及以下版本 如果python的版本不对,是python2.7的话,需要通过下面设置优先级来设置默认的Python为python3.5:

sudo update-alternatives --install /usr/bin/python python /usr/bin/python2.7 1
sudo update-alternatives --install /usr/bin/python python /usr/bin/python3.5 2

编译安装

mkdir build
cd build
cmake -DCMAKE_PREFIX_PATH=/home/alex/github/libtorch  -DWITH_CUDA=ON -DCMAKE_BUILD_TYPE=Release -DCMAKE_CXX_STANDARD=14 ..
make -j4
sudo make install

报错

cmake的时候:

links to target "Python3::Python" but the target was not found. Perhaps a find_package() call is missing for an IMPORTED

解决:这个问题很奇怪,明明已经是默认python3了,还是说找不到。再次安装python3就好了 sudo apt install python3-dev

make的时候

shufflenetv2.cpp:83:33: error: call of overloaded ‘channel_shuffle(at::Tensor&, int)’ is ambiguous

解决:这是多个代码冲突了,将报错地方改为:vision::models::channel_shuffle()

代码实例

CMakeLists.txt

cmake_minimum_required(VERSION 3.19)
project(LibTorchHelloWorld)set(CMAKE_CXX_STANDARD 14)set(CMAKE_PREFIX_PATH "/usr/local/lib;/home/alex/github/libtorch")find_package(TorchVision REQUIRED)
find_package(Torch REQUIRED)
include_directories(${TORCH_INCLUDE_DIRS})add_executable(LibTorchHelloWorld main.cpp)
target_compile_features(LibTorchHelloWorld PUBLIC cxx_range_for)
target_link_libraries(LibTorchHelloWorld  ${TORCH_LIBRARIES} TorchVision::TorchVision)
set_property(TARGET LibTorchHelloWorld PROPERTY CXX_STANDARD 14)

main.cpp

#include <iostream>
#include <torch/torch.h>
#include <torchvision/vision.h>
#include <torchvision/models/resnet.h>// Define a new Module.
struct Net : torch::nn::Module {Net() {// Construct and register two Linear submodules.fc1 = register_module("fc1", torch::nn::Linear(784, 64));fc2 = register_module("fc2", torch::nn::Linear(64, 32));fc3 = register_module("fc3", torch::nn::Linear(32, 10));}// Implement the Net's algorithm.torch::Tensor forward(torch::Tensor x) {// Use one of many tensor manipulation functions.x = torch::relu(fc1->forward(x.reshape({x.size(0), 784})));x = torch::dropout(x, /*p=*/0.5, /*train=*/is_training());x = torch::relu(fc2->forward(x));x = torch::log_softmax(fc3->forward(x), /*dim=*/1);return x;}// Use one of many "standard library" modules.torch::nn::Linear fc1{nullptr}, fc2{nullptr}, fc3{nullptr};
};int main()
{auto model = vision::models::ResNet18();model->eval();// Create a random input tensor and run it through the model.auto in = torch::rand({1, 3, 10, 10});auto out = model->forward(in);std::cout << out.sizes();if (torch::cuda::is_available()) {// Move model and inputs to GPUmodel->to(torch::kCUDA);auto gpu_in = in.to(torch::kCUDA);auto gpu_out = model->forward(gpu_in);std::cout << gpu_out.sizes();}
}

libtorch和torchvision的编译安装相关推荐

  1. linux下QT工程调用opencv、libtorch,并用cmake编译,及其遇到的一些问题的解决方法

    linux下QT工程调用opencv.libtorch,并用cmake编译: 文章目录 一.新建QT工程 二.编写CMakeLists.txt文件 三.各个文件的内容如下: 1.mainwindow. ...

  2. Ubuntu18.04+GTX3090 编译安装pytorch-nightly环境

    由于pytorch目前对30系列显卡的支持不是很好,最好使用源码编译安装,特此记录. 时间:2020年11月24日 安装方式:源码编译安装 环境:ubuntu18.04 + GTX3090 + 显卡驱 ...

  3. pytorch+maskrcnn-benchmark编译安装(cpu版)

    安装前环境: centos6 glibc2.12 gcc7.3 因任务需要,需要利用公司的cpu服务器打线上环境,进行任务分发.需要使用pytorch1.4(因为使用cpu环境,而且各种版本都向下兼容 ...

  4. Dji Manifold2-G源码编译安装pytorch

    Dji Manifold2-G源码编译安装pytorch Dji Manifold-2G 源码安装pytorch 1. 查看Dji Manifold-2G环境 2. 安装cudnn 2.1 下载cuD ...

  5. Windows 10下编译安装Hadoop2.6

    转自:https://www.linuxidc.com/Linux/2016-08/134131.htm Windows 10下安装Hadoop2.6,Windows10下编译64位Hadoop2.x ...

  6. 7 centos 源码安装samba_在CentOS7.6里编译安装PHP7.4(最新版),很详细

    拿到一个空的服务器,首先我们就要来用起来啦! 首先要先下载并编译安装PHP最新版本,请到php官网下载: 这里我首先在系统里在新建存储源码包的文件夹,比如我存放在这里 下载安装PHP7.4之前,你要先 ...

  7. mysql8.0.12最小化安装_简述MySql8.0编译安装过程

    [[email protected] ~]# cat /etc/redhat-release CentOS Linux release 8.0.1905 (Core) 注意:不要用8以下的系统编译My ...

  8. debian编译安装python_编译安装python2.7及相关模块(debian5.0.1)

    基础环境说明及安装 当前系统 cat /etc/debian_version 5.0.1 因自带的python版本太旧 开发需要使用python2.7的版本 并需要paramiko Crypto My ...

  9. php编译7教程,PHP7 快速编译安装

    PHP7正式版发布啦, 之前没有安装过的,都来安装试一试 . 即将发布的ThinkPHP5 在PHP7环境下也完全兼容, 佩服鸟哥把兼容性做得这么好 快速编译安装PHP7步骤: 第一步: 安装必要一些 ...

最新文章

  1. android Android build.gradle 配置注释
  2. 属于链路状态路由选择协议,
  3. java中gso是什么意思_Java中用Gson解析json字符串
  4. windows安装pygame
  5. Kotlin实践(2)-生成jvm程序
  6. 深入理解 Java 垃圾回收机制
  7. SQL Lite on NHibernate
  8. 汇编语言(三十五)之输入字符串以$结束然后输出字母个数
  9. aws terraform_如何使用Terraform通过Direct Connect扩展AWS基础架构
  10. 微软设计套装 Expression Studio 4 (Ultimate+Web Pro+Encoder Pro) 最新版下载
  11. 如何将pytorch检测模型通过docker部署到服务器
  12. php怎么在表格里插图片大小,如何批量插入图片到Word文档表格中并自动排版调整尺寸...
  13. Failed to start component [Connector[HTTP/1.1-20001]]报错
  14. 应用程序无法运行,不是有效的Win32位程序解决(新手向)
  15. B 站,真香 ! ! !
  16. STM32F103C8T6 I/O口驱动4位共阳数码管
  17. latex 表格如何精细控制行高,行距,行与行之间的距离
  18. Selective Search原理及实现
  19. Anbox之构建android.img(三)
  20. [SSL: CERTIFICATE_VERIFY_FAILED]

热门文章

  1. ubuntu安装python下载包_Ubuntu安装Python的包管理工具Pip
  2. centos7挂载ntfs文件系统_MacOS读写挂载NTFS磁盘,几行代码就行了
  3. java实现次方的运算_【技术干货】Java 面试宝典:Java 基础部分(1)
  4. Codeforces Global Round 1
  5. 45.UITableView去除分割线
  6. 【EF学习笔记07】----------加载关联表的数据 贪婪加载
  7. 问题-[WIN8.132位系统]安装Win8.1 遇到无法升级.NET Framework 3.5.1
  8. laxcus的新功能:支持表跨数据库操作
  9. 自动生成小学四则运算题目
  10. ASP.NET MVC Preview 2新特性