0


树莓派上编译安装pytorch1.4

为什么要在树莓派上安装pytorch

树莓派是一个香烟盒大小的电脑,能运行window(IOT)和linux系统。可以当做一台普通的电脑用来办公上网,还有裸露的针脚可以用来控制你自己设计的电路。比如读取各种(温度,重力,加速度)传感器信息,也可以驱动马达和蜂鸣器,摄像头什么的。

说到可以驱动摄像头,那么我们就可以通过pytorch进行推理,树莓派的配置很低,毕竟几百块钱的成本,配置不会高到哪里去,但是通过他的cpu还是能够处理一些简单的推理工作的。

系统环境安装

这部分就略掉了,主要就是要将系统安装到SD卡中并插入树莓派,这个官网都有介绍,就不细说了。我这里使用的是树莓派4b:1.5GHz四核64位ARM Cortex-A72 CPU, 4G内存
系统也是官官方的基于Debian 10 Buster的ARM版linux.

进入系统后,首先还是安装conda,因为arm版的conda很久都不更新了,所以有个大佬专门制作了树莓派版的conda :https://github.com/jjhelmus/berryconda 我们按照说明直接安装后就可以使用了

因为pytorch没有官方的arm版提供下载,所以我们需要在树莓派上自己进行编译

下面安装编译pytorch所需要的包

sudo apt install libopenblas-dev libblas-dev m4 cmake cython

继续安装python的包

pip install numpy pyyaml cyphon

这里如果不安装numpy的话也能成功编译,但是编译出来的PyTorch不支持numpy

编译pytorch 1.4

做新版就是1.4 所以我们这里拿最新版来做

git clone --recursive https://github.com/pytorch/pytorchcd pytorchgit checkout v1.4#这里选择最新的1.4版git submodule syncgit submodule update --init --recursivegit submodule update --remote third_party/protobuf #这句必须要有,否则在编译时会报一个找不到protobuf.h的错误

树莓派是不支持CUDA和MKLDNN的,CUDA是nv的,MKLDNN是intel的,
我们拿树莓派也只做推理,分布式也不要了。所以我们设置以下的环境变量

export NO_CUDA=1export NO_DISTRIBUTED=1export NO_MKLDNN=1export MAX_JOBS=4#这里设置4是因为4b是4核,如果树莓派是3的话,设置成1

进行完以上的配置,我们可以编译了

#本地安装python setup.py install
#打包成whl,打包成功后这个文件在dist目录里面python setup.py bdist_wheel

编译时一个漫长的过程,我的4b上大概花了2个半小时。听说3需要5个小时左右。慢慢等,不要着急,按照我上面的步骤肯定是可以成功的。

安装 torchvision

编译完pytorch以后我们肯定还需要安装torchversion,pip的arm源里面torchvision的版本是0.22,已经是一个很老的版本了,所以这里面我们还是通过源码自己编译。

安装编译所需要的包,这里主要是编译pillow使用的,因为torchvision是基于

sudo apt-get install libjpeg-dev libavcodec-dev libavformat-dev libswscale-dev

安装pillow

pip install pillow

编译 torchvision

目前官网的torchvision版本是0.6,我们不用切换版本直接用就好了

git clone https://github.com/pytorch/vision.git
cd visiongit checkout v0.5#如果需要使用与pytorch 1.4一同发布的0.5版,则要加上这句#本地安装python setup.py install
#打包成whlpython setup.py bdist_wheel

等待完成,就可以使用了

下载

为了节省大家的时间,我这里也将我编译好的包提供给大家下载

我这个是基于python 3.6 进行编译的,如果大家用3.6的话,直接下载安装即可

下载地址在这里:https://github.com/zergtant/pytorch-handbook/tree/master/pi

参考

这边日本人写的文章里面 编译遇到的问题总结的比较全:https://qiita.com/yyojiro/items/d91b02149aa6480ded80

这里只有 1.2以前版本的,想装以前版本可以直接从这里下:https://github.com/nmilosev/pytorch-arm-builds

总结

编译pytorch总耗时大概5小时左右,编译numpy大概半小时,编译pytorch 2.5小时,编译torchvision 1小时,剩余半小时为报错解决的时间。

最后请大家珍惜这次在家宅就能为祖国做贡献的机会

标签:

“树莓派上编译安装pytorch1.4”的评论:

还没有评论