#目次
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の入れ方が載ってるサイト