0,阅读Pytorch C++官网文档,在虚拟机上安装Ubuntu16.04的Linux操作系统搭建环境,并使用makefile进行编译,代码简洁易读。
sudo apt-get update
sudo apt-get install vim make cmake gcc g++ libnss3 tree git openssh-server openssh-client
1,下载pytorch c++ cpu 库文件,并解压,注意此目录路径,cmake编译需要
unzip libtorch-shared-with-deps-latest.zip
pwd
2,安装vscode,下载地址:linux vscode,解压并启动
sudo dpkg -i code_1.32.1-1552006243_amd64.deb
code
3,创建一个工程,目录结构:
rose@rose-machine:~/pytorch_c++/test$ tree
.
├── main.cpp # 主程序
├── bin # cmake 编译输出的文件目录
├── CMakeLists.txt # cmake文件
└── makefile # make编译CMakeLists.txt,代码简洁
main.cpp,代码
#include <torch/script.h>
#include <ATen/ATen.h>
#include <iostream>
#include <memory>
using namespace std;
using namespace at;
int main(int argc, const char* argv[])
{
at::Tensor a = at::ones({2,2}, at::kInt);
std::cout<< a << "\n";
std::cout<< "ok\n";
return 1;
}
CMakeLists.txt,代码
cmake_minimum_required(VERSION 3.0 FATAL_ERROR)
# 项目名称
project(demo)
find_package(Torch REQUIRED)
# 输出项目名称,依赖main.cpp
add_executable(${PROJECT_NAME} main.cpp)
target_link_libraries(${PROJECT_NAME} "${TORCH_LIBRARIES}")
set_property(TARGET ${PROJECT_NAME} PROPERTY CXX_STANDARD 11)
makefile,代码
.PHONY:all clean
# bin为cmake输出目录
PATH_BIN=bin
# pytorch_lib为libtorch-shared-with-deps-latest.zip解压后的目录
pytorch_lib=/home/rose/software/libtorch
all:
@cd ./$(PATH_BIN) && cmake -DCMAKE_PREFIX_PATH=$(pytorch_lib) .. && make
clean:
rm -rf $(PATH_BIN)
mkdir $(PATH_BIN)
4,编译与执行。
4.1,编译,make
4.2,运行,./bin/demo
4.3,删除cmake编译文件,make clean
5,下载此项目,test.tar.gz
6,github项目,相关案例