[17/07/18 23:28 更新]
以下は、debian jessie でインストールした方法である。多分、他のOSでも似たりよったりだろう。
まずは、MXNetのライブラリのビルド。 基本的には、Installing MXNet (http://mxnet.io/get_started/install.html) の Build from Source の通り。
apt
でbuild-essential
git
libopenblas-dev
libopencv-dev
インストール。
[うちの環境では、libopencv-dev
が破損あつかいで、synaptic
で解決できず、
$ sudo aptitude install libopencv-dev
で2番目の解決を選んで、backportsしたライブラリのいくつかをダウングレイドした。もちろん、問題なくインストールできるなら、それでOK。
]
次に、本体をダウンロードしてライブラリをビルド。${HOME}/work
などで作業すると、ホームディレクトリ直下を汚染しなくてすむ。
$ git clone --recursive https://github.com/dmlc/mxnet
$ cd mxnet
ここで、MKL (Intel® Math Kernel Library) のサポートも試してみる。インテルのCPUで外部GPUを使っていない場合に、特に有効なようだ。体感的には、10分の計算が10秒で出来るくらいの効果がある。
MKL サポートのためには、まず、/usr/local
に書き込めるようにする必要がある。debian では/usr/local
はroot:staff
になってるので、自分をstaff
の group に加えればよい。
$ sudo adduser user staff
ここでuserは、自分のユーザ名である。
[2017年7月18日 追記: これは、次にログインしたときから有効]
[debian系以外では、いろいろ違う対処になるはず]
その後、make/config.mk
編集する。
USE_MKL2017 = 1
USE_MKL2017_EXPERIMENTAL = 1
これで、次のステップに進めば、自動的に MKL をダウンロードして、準備してくれる。
次に、ビルド。
$ make -j $(nproc) USE_OPENCV=1 USE_BLAS=openblas
これで、./lib
にlibmxnet.so
が出来てるはず。
MKL を使う場合は、
$ sudo ldconfig
とする。そうしないと、ライブラリを見つけてくれない。
Perl Package は、Installing MXNet on Ubuntu (http://mxnet.io/get_started/ubuntu_setup.html) を参考。
apt
でlibmouse-perl
pdl
cpanminus
swig
libgraphviz-perl
をインストール。
[新しい方がよいと思って、swig3.0
にするとダメ。/usr/bin/swig
が出来てくれない。]
本家ではPerl Packageを${HOME}/perl5
にインストールする方法を書いてるが、ここでは、${HOME}
にインストールする方法を書いておく。こうすると、ホームディレクトリの下に、bin
、lib
、man
というディレクトリが出来ると思うが、それが嫌でない人むけ。
まず、cpanm
でFunction::Parameters
をインストール。本家では、
$ cpanm -q -L "${HOME}" Function::Parameters
といった感じだが、
$ sudo cpanm Function::Parameters
でもよい。
あとは、perl-package/
以下のAI-MXNetCAPI/
、AI-NNVMCAPI/
、AI-MXNet/
をこの順番で訪れて、それぞれで、
$ perl Makefile.PL INSTALL_BASE=${HOME}
$ make install
これで、${HOME}/lib/perl5/AI/
にMXNet.pm
が出来てる。
この構成だと、環境変数PERL5LIB
に${HOME}/lib/perl5
を指定するか、perlスクリプト内で、
use lib "$ENV{HOME}/lib/perl5";
とする必要がある。以下の説明では、後者の方法を採用する。(他にもいくつか方法があるけど)
[libmxnet.so
を適切な場所に置いてcpanm
を使ってもいいかも知れないが、ちゃんとは試していない。]
[次の「状況説明」へ] [「PerlとMXNetでディープ・ラーニング」に戻る] [「あえてのPerl」に戻る]