MXNet 0.5.0をアンインストールして、Deep3Dに対応させたMXNet 0.7.0をUbuntu 14.04にインストールしてみました。
以下の記事のように、MXNet 0.5.0では、OpenCV関係でいろいろ試行錯誤して、インストールの記録が残せなかったため、MXNetインストールの記事は、今回が初となります。
MXNetのビルド
最初に、依存関係のあるパッケージをインストールします。
$ sudo apt-get update $ sudo apt-get install -y build-essential git libatlas-base-dev libopencv-dev
あらかじめ作成しておいたgithubディレクトリに移動し、--recursive
を付けて、GitHubのMXNet(https://github.com/dmlc/mxnet)をcloneします。
$ cd ~/github $ git clone --recursive https://github.com/dmlc/mxnet
また、Deep3D(https://github.com/piiswrong/deep3d)に対応させるため、以下の追加作業を行います。
$ git clone https://github.com/piiswrong/deep3d
このあと、Installation Guide(http://mxnet.readthedocs.io/en/latest/how_to/build.html#building-on-ubuntu-debian)通りに、
$ cd mxnet; make -j$(nproc)
とすると、CUDAとcuDNNを使用しないCPU版がビルドされます。
GPU版をビルドするために、mxnetディレクトリに移動し、mxnet/makeディレクトリのconfig.mkをmxnetディレクトリにコピーして、編集を行います。
$ cd mxnet $ cp make/config.mk . $ gedit config.mk
ここでは、config.mkの
USE_CUDA = 0 # USE_CUDA_PATH = /usr/local/cuda USE_CUDA_PATH = NONE USE_CUDNN = 0
を
USE_CUDA = 1 USE_CUDA_PATH = /usr/local/cuda #環境に合わせて変更 # USE_CUDA_PATH = NONE USE_CUDNN = 1
に変更します。
また、Deep3Dに対応させるため、
EXTRA_OPERATORS =
を
EXTRA_OPERATORS = /home/sora/github/deep3d/operators #環境に合わせて変更
に変更して、config.mkを保存します。
OpenCV 3.1をインストールしている環境だと、
$ make -j$(nproc)
でビルドが成功しました。
libopencv-devでOpenCV 2.4環境を構築している場合、
$ pkg-config --libs opencv
で、ライブラリが表示されるか確認し、表示されない場合、
$ export PKG_CONFIG_PATH=/usr/lib/x86_64-linux-gnu/pkgconfig:$PKG_CONFIG_PATH $ pkg-config --libs opencv
で、状況が変化するか確認して下さい。
Python用MXNetのセットアップ
旧バージョンをセットアップしている場合、
$ python -c "import mxnet; print(mxnet.__file__)"
で表示されるdist-packagesディレクトリよりも後のディレクトリを削除しておきます。
次に、以下のコマンドで、新バージョンのセットアップを行います。
$ cd python $ python setup.py install
最後に、以下のコマンドで、
$ python -c "import mxnet; print(mxnet.__veriosn__)" 0.7.0
となれば、セットアップ完了です。
まとめ
MXNet 0.5.0をアンインストールして、Deep3Dに対応させたMXNet 0.7.0をUbuntu 14.04にインストールしてみました。
OpenCV関係の失敗の経験が活かされ、今回のインストールは、比較的うまく行きました。