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

前言:

相比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

你可能感兴趣的:(Pytorch,树莓派)