Tic商业评论

关注微信公众号【站长自定义模块】,定时推送前沿、专业、深度的商业资讯。

 找回密码
 立即注册

QQ登录

只需一步,快速开始

微信登录

微信扫码,快速开始

在树莓派上编译安装libtorch并用c++调用模型

0
回复
3760
查看
[复制链接]
已绑定手机

49

主题

4

回帖

1228

积分

管理员

积分
1228
QQ
来源: 2021-5-16 16:22:27 显示全部楼层 |阅读模式
一,首先在编译源码之前,需要对你的内存做检测,看内存是否超过2G,如果内存比较小,可以使用swap进行扩内存。如果内存超过3G可以忽略
修改文件 /etc/dphys-swapfile 添加

CONF_SWAPFILE=2048M
更新修改的内容
#更新:

sudo dphys-swapfile setup


二,安装依赖包
#依赖包

sudo apt install build-essential make cmake git python3-pip libatlas-base-dev

安装cmake之前要进行安装cmake依赖:
#依赖包

sudo apt-get install libssl-dev

这里有一点需要注意,cmake>=3.15 如果小于3.15需要下载源码进行编译,具体如下:
wget https://github.com/Kitware/CMake/releases/download/v3.18.0-rc1/cmake-3.18.0-rc1.tar.gz

tar -xzf cmake-3.18.0-rc1.tar.gz

cd cmake<version>

mkdir build

cd build

cmake ..

make

sudo make install



sudo apt remove cmake

sudo ln -s /usr/local/bin/cmake /usr/bin/cmake

sudo ldconfig
#依赖包

sudo apt-get install build-essential tk-dev libncurses5-dev libncursesw5-dev libreadline6-dev libdb5.3-dev libgdbm-dev libsqlite3-dev libssl-dev libbz2-dev libexpat1-dev liblzma-dev zlib1g-dev


三,获取编译pytorch

#获取pytorch

git clone --recursive https://github.com/pytorch/pytorch --branch=release/1.6

cd pytorch

设置环境变量:
在文件~/.bashrc添加
export NO_CUDA=1

export NO_DISTRIBUTED=1

export NO_MKLDNN=1 

export NO_NNPACK=1

export NO_QNNPACK=1


切换为root用户进行操作:
sudo su

source /home/<user>/.bashrc
安装Python依赖:
#依赖

pip3 install setuptools pyyaml numpy
#编译

sudo -E python3 setup.py install
这里-E是使用环境变量里的参数

编译一段时间,编译完成,下面为编译是否正常:
cd 

python3

import torch

torch.__version__
如果正常就可以编译c++项目。
cmake_minimum_required(VERSION 2.6)

project(projectName)



set(CMAKE_PREFIX_PATH "/home/pi/pytorch/torch") # Adding the directory where torch as been installed

set(CMAKE_CXX_STANDARD 14) # C14 required to compile Torch

set(CMAKE_CXX_STANDARD_REQUIRED TRUE)

add_compile_definitions(_GLIBCXX_USE_CXX11_ABI=0) # Torch is compiled with CXX11_ABI, so your program needs to be also, or you may have conflicts in some libraries (such as GTest for example)



# Specifying we are using pthread for UNIX systems.

set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} ${TORCH_CXX_FLAGS} -pthread -Wall")



find_package(Torch REQUIRED)



if(NOT Torch_FOUND)

  message(FATAL_ERROR "Pytorch Not Found!")

endif(NOT Torch_FOUND)



message(STATUS "Pytorch status :")

message(STATUS "  libraries: ${TORCH_LIBRARIES}")

message(STATUS "  Torch Flags: ${TORCH_CXX_FLAGS}")



# Program executable

add_executable(projectName <sources>)



target_link_libraries(projectName PRIVATE pthread dl util ${TORCH_LIBRARIES})
上面是一个cmake例子。






回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册
电话咨询: 135xxxxxxx
关注微信