1
3

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 3 years have passed since last update.

PytorchをRaspberry pi 3B+にインストール(2021/2/13)

Posted at

#目次
0.はじめに
1.環境
2.やり方
3.よくわからなかった方法
4.参考サイト
#0.はじめに
ラズパイにTensorflowを入れて、Optimizerの編集を行っていたのだが、自分の求めるOptimizerがPytorchで実装されているのを発見した。そのため、Pytorchをラズパイにインストールすることを思い立った

最初はこれを参考にしていたのですが、buildで3日以上かかってフリーズしたので、途中からこちらを参考にしました。
このページの2.6以降は参考にしたページとほぼ同じです。

#1.環境
以下の環境で行った

デバイス Raspberry Pi 3B+
OS Raspbian buster
python 3.7.3
Pytorch 1.9

ラズパイのセッティングから始める人は
ここらへんのサイトを参考にしてください

#2.やり方
##2.0 デフォルト pythonを変更する
ラズパイはpython2系とpython3系が入ってます。デフォルトがpython2になってるので、変更しておきます。
後々、エラーが出るのを防ぎます。
こちらを参考にしました。

cd /usr/bin
sudo unlink python
sudo ln -s python3 python

##2.1 Upgrade Update
まず、upgrade 及び updateを行った

sudo apt update && sudo apt upgrade

1~2時間かかります。

##2.2 Swapfile
次にスワップファイルのメモリを増やします。
ラズパイはデフォルトで100MBしかないです。
どこのサイトを見ても2GBくらいに増やしているので、2GBに増やしましょう。
増やさないとメモリめちゃくちゃ使って時間かかりすぎるらしい...

こちらを参考にしました。
etcの中にあるdphys-swapfileを編集します。
編集権限がないときはchmodで編集権限を変更してください。

cd /etc/
sudo chmod 7 dphys-swapfile
vim dphys-swapfile

更新部分は

#CONF_SWAPSIZE=100

の箇所を2048にします。

終わったらrestartします。

sudo /etc/init.d/dphys-swapfile restart

##2.3 依存情報
次に依存情報?パッケージをインストールします。
参考にしていたサイトが英語で記述されていてprerequisiteと書いてあったのですがこれ依存情報って意味あるんですかね...

sudo apt install libopenblas-dev libblas-dev m4 cmake cython python3-dev python3-yaml python3-setuptools

##2.4 Pytorch
いよいよPytorchをgitで入れます

mkdir pytorch_install && cd pytorch_install
git clone --recursive https://github.com/pytorch/pytorch
cd pytorch

めっちゃ時間かかりました。
別のことしてていいです。
2時間くらいかかります。
適当な電源でやってたら、ラズパイが落ちるのでちゃんとした電源でやってください。

export NO_CUDA = 1 
export NO_DISTRIBUTED = 1 
export NO_MKLDNN = 1 
export NO_NNPACK = 1 
export NO_QNNPACK = 1

環境変数の設定です。
いらないものを使わないように設定します。

パッチ当てをしておきます。

git submodule update --remote third_party/protobuf

##(不要の可能性あり)
このステップは不要の可能性があります。直接buildするときは必要ですが、./build_raspberrypi.shからビルドするので不要かもしれません(要検証)

この後、buildを行うのですが、typing_extensions の moduleが入っていない場合は次の作業をしてください。(python3.8以上なら不要らしいです)
Rasbian OS Buster を使っているとpython3.7.3になっていると思うので、下の作業をしてください。
Rasbian OSにはpython3 と python2が入っているので、pip3 の代わりにpipで入力してしまうと、python2の環境にインストールされるらしいので注意

sudo pip3 install typing_extensions

versionの確認はhome ディレクトリまで戻ってから

python3 -V

で確認してください。(pytorchのディレクトリの中では確認できなかったため)

##2.5 スクリーンセーバーの設定(推奨)
先に、スクリーンセーバーを設定することをお勧めします。
デフォルトだと、10分でラズパイがスリープモードになります。

sudo apt-get install xscreensaver

インストール後に、ラズパイを再起動、メニューの設定の中にスクリーンセーバーが追加されます。
セーバーを無効にしておきましょう。

##2.6 PytorchのBuild
Buildを行います 
こちらの記事にあるように、並列処理の箇所を編集します

[python3 setup.py build]

で行うと2晩以上かかります。なので、次のように編集して処理をします。

cd pytorch/scripts
sudo vim build_raspberrypi.sh

make -j 2を1に書き換えます。

make -j 1 || exit 1

これでビルドしましょう。

./build_raspbian.sh 

終わったら、/pytorchのディレクトリまで戻って、whlファイルからインストールします。

sudo python3 setup.py bdist_wheel

/pytorch/dist の中にwhlファイルが出来上がります。

#2.7 ファイルの移動
なぜか、torchの参照ファイルがusr/local/lib/python3.7/dist-packages/torchの中にある必要があったので、usr/local/bin の中にあったtorch_shm_manager をusr/local/lib/python3.7/dist-packages/torch/binにコピーしました。
同様にlibtorchファイルも5種類くらい usr/local/libからusr/local/lib/python3.7/dist-packages/torch/libに移動させました。

#2.8 確認

python3

import torch
torch.__version__
exit()

無事、pytorchが入っていることが確認できたと思います。
僕の環境だと1.9が入っていました。

#3 バージョンが色々合わなかったやつです。

#4.参考サイト
ラズパイのOSの入れ方が載ってるサイト

スワップファイルの作り方を教えてくれたサイト

入れ方を教えてくれたサイト

pytorchのgithub

デフォルトのpythonのバージョンを変える方法

1
3
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
1
3

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?