欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

在树莓派上源代码编译安装Pytorch1.0

程序员文章站 2022-06-26 15:30:32
...

前言:

相比TensorFlow,现在是越来越喜欢Pytorch了,真的很方便。由于毕业需求,在嵌入式平台测试深度学习框架,所以在树莓派3b上安装Pytorch,这是我在树莓派上编译安装的第三个深度学习框架了,第一个是caffe,然后是TensorFlow,现在是Pytorch,期间走了不少弯路,所以在此记录一下。顺便在此吐槽一句,树莓派相比电脑性能真的很差,花了不少时间,后来先在服务器上编译测试,服务器真的特别快,通过之后再安装那个方法在树莓派上编译,前后花了三四天的时间。

此教程同样使用于其他平台的Ubuntu16.04系统
系统:Ubuntu16.04
硬件平台:树莓派3b
软件:Python3 (使用Python2的同学将下面的Python3换成Python,pip3换成pip即可)

1. 安装依赖包

由于Pytorch1.0 Facebook将caffe2并入了Pytorch,所以首先我们需要安装caffe2 的依赖包.

sudo apt-get update
sudo apt-get install -y --no-install-recommends \
      build-essential cmake git \
      libgoogle-glog-dev \
      libgtest-dev \
      libiomp-dev \
      libleveldb-dev \
      liblmdb-dev \
      libopencv-dev \
      libopenmpi-dev \
      libsnappy-dev \
      libprotobuf-dev \
      openmpi-bin \
      openmpi-doc \
      protobuf-compiler \
      python3-dev \
      python3-pip                          
sudo pip3 install future numpy  protobuf typing  hypothesis setuptools

如果想将Python的pip包安装到用户目录,请在后面加上--user

# for Ubuntu 14.04
sudo apt-get install -y --no-install-recommends \
      libgflags2 \
      cmake3
# for Ubuntu 16.04
sudo apt-get install -y --no-install-recommends \
      libgflags-dev \
      cmake

如果有GPU请看此链接进行额外的操作。

2. 增加swap交换空间

创建2G的swap文件

mkdir /swap 
cd /swap 
sudo dd if=/dev/zero of=swapfile bs=2048 count=1000000

把生成的文件转换成 Swap 文件

sudo mkswap -f swapfile

**swap文件

sudo swapon swapfile 

卸载swap文件

sudo swapoff swapfile

如果需要一直保持这个 swap ,可以把它写入 /etc/fstab 文件。

/swap/swapfile /swap swap defaults 0 0

注意:由于树莓派只有1G的运存,而编译Pytorch的时候会占用大量运存,所以才会使用虚拟内存,但不建议长期使用,因为在树莓派上使用的是SD卡,虚拟内存会频繁读写SD卡,使SD卡的寿命大幅缩减,所以建议在编译完Pytorch后手动关闭虚拟内存

3. 编译Pytorch源代码

由于这个过程会花费大量时间,所以可以放在一边去做其他事,或者在晚上操作

git clone https://github.com/pytorch/pytorch.git && cd pytorch
# 切换Pytorch版本到1.0.0
git checkout -b v1.0.0 v1.0.0
git submodule update --init --recursive
# 设置最大jobs为1,因为树莓派运行内存有限,如果这个值较大,编译的时候会卡死
export MAX_JOBS=1
# 编译
python3 setup.py build
#生成whl文件
python3 setup.py bdist_wheel

在dist目录下会生成一个whl 文件,用pip3 按照即可

sudo pip3 install torch-1.0.0a0+db5d313-cp35-cp35m-linux_aarch64.whl
sudo pip3 install torchvision