libtorch和torchvision的编译安装
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的编译安装相关推荐
- linux下QT工程调用opencv、libtorch,并用cmake编译,及其遇到的一些问题的解决方法
linux下QT工程调用opencv.libtorch,并用cmake编译: 文章目录 一.新建QT工程 二.编写CMakeLists.txt文件 三.各个文件的内容如下: 1.mainwindow. ...
- Ubuntu18.04+GTX3090 编译安装pytorch-nightly环境
由于pytorch目前对30系列显卡的支持不是很好,最好使用源码编译安装,特此记录. 时间:2020年11月24日 安装方式:源码编译安装 环境:ubuntu18.04 + GTX3090 + 显卡驱 ...
- pytorch+maskrcnn-benchmark编译安装(cpu版)
安装前环境: centos6 glibc2.12 gcc7.3 因任务需要,需要利用公司的cpu服务器打线上环境,进行任务分发.需要使用pytorch1.4(因为使用cpu环境,而且各种版本都向下兼容 ...
- Dji Manifold2-G源码编译安装pytorch
Dji Manifold2-G源码编译安装pytorch Dji Manifold-2G 源码安装pytorch 1. 查看Dji Manifold-2G环境 2. 安装cudnn 2.1 下载cuD ...
- Windows 10下编译安装Hadoop2.6
转自:https://www.linuxidc.com/Linux/2016-08/134131.htm Windows 10下安装Hadoop2.6,Windows10下编译64位Hadoop2.x ...
- 7 centos 源码安装samba_在CentOS7.6里编译安装PHP7.4(最新版),很详细
拿到一个空的服务器,首先我们就要来用起来啦! 首先要先下载并编译安装PHP最新版本,请到php官网下载: 这里我首先在系统里在新建存储源码包的文件夹,比如我存放在这里 下载安装PHP7.4之前,你要先 ...
- mysql8.0.12最小化安装_简述MySql8.0编译安装过程
[[email protected] ~]# cat /etc/redhat-release CentOS Linux release 8.0.1905 (Core) 注意:不要用8以下的系统编译My ...
- debian编译安装python_编译安装python2.7及相关模块(debian5.0.1)
基础环境说明及安装 当前系统 cat /etc/debian_version 5.0.1 因自带的python版本太旧 开发需要使用python2.7的版本 并需要paramiko Crypto My ...
- php编译7教程,PHP7 快速编译安装
PHP7正式版发布啦, 之前没有安装过的,都来安装试一试 . 即将发布的ThinkPHP5 在PHP7环境下也完全兼容, 佩服鸟哥把兼容性做得这么好 快速编译安装PHP7步骤: 第一步: 安装必要一些 ...
最新文章
- android Android build.gradle 配置注释
- 属于链路状态路由选择协议,
- java中gso是什么意思_Java中用Gson解析json字符串
- windows安装pygame
- Kotlin实践(2)-生成jvm程序
- 深入理解 Java 垃圾回收机制
- SQL Lite on NHibernate
- 汇编语言(三十五)之输入字符串以$结束然后输出字母个数
- aws terraform_如何使用Terraform通过Direct Connect扩展AWS基础架构
- 微软设计套装 Expression Studio 4 (Ultimate+Web Pro+Encoder Pro) 最新版下载
- 如何将pytorch检测模型通过docker部署到服务器
- php怎么在表格里插图片大小,如何批量插入图片到Word文档表格中并自动排版调整尺寸...
- Failed to start component [Connector[HTTP/1.1-20001]]报错
- 应用程序无法运行,不是有效的Win32位程序解决(新手向)
- B 站,真香 ! ! !
- STM32F103C8T6 I/O口驱动4位共阳数码管
- latex 表格如何精细控制行高,行距,行与行之间的距离
- Selective Search原理及实现
- Anbox之构建android.img(三)
- [SSL: CERTIFICATE_VERIFY_FAILED]
热门文章
- ubuntu安装python下载包_Ubuntu安装Python的包管理工具Pip
- centos7挂载ntfs文件系统_MacOS读写挂载NTFS磁盘,几行代码就行了
- java实现次方的运算_【技术干货】Java 面试宝典:Java 基础部分(1)
- Codeforces Global Round 1
- 45.UITableView去除分割线
- 【EF学习笔记07】----------加载关联表的数据 贪婪加载
- 问题-[WIN8.132位系统]安装Win8.1 遇到无法升级.NET Framework 3.5.1
- laxcus的新功能:支持表跨数据库操作
- 自动生成小学四则运算题目
- ASP.NET MVC Preview 2新特性