追記(2019/5/7)
急ぎも無くなったので,v1.1.0
が入るかどうか検証
追記(2019/5/8)
およそ8時間ほどかかって無事にインストールできることを確認しました.
動機
RaspberryPi 3BモデルにPytorchをインストールする必要があって,
色々試行錯誤してなんとかインストールができたので,その時のメモ.
Pytorchのバージョンについて
2019年5月7日現在,pytorchのバージョンはv1.1.0
になっている けど,
Caffe2とかも一緒にインストールしようとするため,すごく重い.
インストールできるか検証中.
無事にインストールが確認できました.
githubのissueとかを見る限り,v0.3.1
のインストールまではできる様子.
(v0.4.0
もインストールできたというコメントもあったが未検証)
そこで,pytorchはv0.3.1
を選択.
$ git clone https://github.com/pytorch/pytorch --depth 1 --recursive -b v0.3.1
一部コードを修正
このままビルド・インストールしようとすると,下記のエラーにぶつかる
Build Error: no matching function for call to setattr(torch::jit::Node*&, ...)
なので,この[パッチ]
(https://github.com/pytorch/pytorch/pull/4473)を当てる必要がある.
具体的にはpytorch/tools/autograd/templates/VariableType.cpp
において,
#include <iostream>
#include <functional
#include <cstddef> //追加
// template<unsigned long N> // これを
template<std::size_t N> // に変更
RaspberryPiの前準備
これに従って,
$ sudo dd if=/dev/zero of=/swap1 bs=1M count=2048
$ sudo mkswap /swap1
でスワップ領域を作成して,
$ sudo vim /etc/fstab
/swap1 swap swap
を追記.終わったら,
$ sudo swapoff /swap0
$ sudo swapon /swap1 # Hoge is Busyみたいなのが出ても問題なし
これで準備は終わり,あとはひたすらコマンドをうつ.
インストールコマンド周り
$ export NO_CUDA=1
$ export NO_DISTRIBUTED=1
$ export MAX_JOBS=2 # すごく大事
$ export USE_MKLDNN=0 # すごく大事
ここで,MAX_JOBS=2
にしないと,pytorchがデフォルトでコア4個扱うため,ラズパイがフリーズしたり落ちたりする.(これで1日x3回くらい溶かした)
pytorchに必要なライブラリをインストール.
$ sudo apt-get install libopenblas-dev cython libatlas-dev \
m4 libblas-dev python3-dev cmake python3-yaml
$ cd pytorch
$ python3 setup.py build # v1.1.0ではno longerと書かれるが,この1行がいらないかは不明
$ sudo -E python3 setup.py install
これでインストールが終わるはず.
$ python3
Python 3.5.3 (default, Sep 27 2018, 17:25:39)
[GCC 6.3.0 20170516] on linux
Type "help", "copyright", "credits" or "license" for more information.
>>> import torch
>>> torch.__version__
'1.1.0a0+2356fac'
となれば成功.