LoginSignup
2
1

More than 5 years have passed since last update.

caffeをubuntu16.04のVirtualBoxにインストールする

Last updated at Posted at 2016-12-26

0 初めに

caffeは今、機械学習の主流のframeworkになっているが、virtualboxにインストールするのはなかなか難しい。virtualboxはGPUをサポートしてないらしい。でも、どうしてもvirtualboxに入れて自由に遊んで見たいからやって見るしかない。

1 対象のOS

cent os、ubuntuなどいくつ試したが、Ubuntu 16.04 LTS を選択。ネットを調べるとほとんどが、ubuntuをベースにしている。下記のサイトからダウンロードできる。
http://www.osboxes.org/category/ubuntu/

バージョンがいろいろあるが、16.04を選択。

2 CUDAをインストールしない

caffeのサイトを見るとCUDAのインストールが必須のように見える。でもCPUモードでは実際CUDAがなくても、caffeオフィシャル提供のexampleを実行できる。virtualboxにcaffeを入れる時、一番の問題はGPUがないことなので、CUDAを割愛するしかない。CUDAを手順通りにインストールして見たが、結局動かなかった。

image

3 Guest Additionをインストール

virtualboxのデバイスメニューから簡単にインストールできる。まさにubuntuの素晴らしいところ。image

4 caffeをインストール

4.1 必要なパッケージをインストール

ここはcaffeのdockerファイルを参考。(https://github.com/BVLC/caffe/blob/master/docker/standalone/cpu/Dockerfile)

sudoコマンドでうまく行かない場合は、sudo su でルートユーザになって実行する

apt-get update && apt-get install -y --no-install-recommends \
build-essential \
cmake \
git \
wget \
libatlas-base-dev \
libboost-all-dev \
libgflags-dev \
libgoogle-glog-dev \
libhdf5-serial-dev \
libleveldb-dev \
liblmdb-dev \
libopencv-dev \
libprotobuf-dev \
libsnappy-dev \
protobuf-compiler \
python-dev \
python-numpy \
python-pip \
python-scipy && \
rm -rf /var/lib/apt/lists/*

実行すると、下記のlockエラーが発生することがある。
E: Could not get lock /var/lib/dpkg/lock - open (11: Resource temporarily unavailable)

いろいろ調べたが、lockを削除する方法で問題解決。
osboxes@osboxes:~$ sudo rm /var/lib/apt/lists/lock
osboxes@osboxes:~$ sudo rm /var/cache/apt/archives/lock
osboxes@osboxes:~$ sudo rm /var/lib/dpkg/lock

このサイトを参考(http://askubuntu.com/questions/15433/unable-to-lock-the-administration-directory-var-lib-dpkg-is-another-process)
やばい方法だと書いてあるが、仕方ない。
lockを削除して再度パッケージをインストールしてOK. パッケージが多いので、実行には時間がかかる。

4.2 caffe本体のインストール

caffeはgithubから持ってきて、コンパイルする。
4.2.1 環境変数を設定
caffeのdockerファイルを参考。(https://github.com/BVLC/caffe/blob/master/docker/standalone/cpu/Dockerfile)
ホームフォルダーで実行。bashの環境変数設定。
root@osboxes:/home/osboxes# CAFFE_ROOT=/opt/caffe
root@osboxes:/home/osboxes# CLONE_TAG=master

4.2.2 githubからソースを取得
git clone -b ${CLONE_TAG} --depth 1 https://github.com/BVLC/caffe.git
4.2.3 pythonの必要な設定とcaffeのビルド
上記ダウンロードしたcaffeのフォルダーに移動して実行する。
root@osboxes:/home/osboxes/caffe# for req in $(cat
python/requirements.txt) pydot; do pip install $req; done && \
mkdir build && cd build && \
cmake -DCPU_ONLY=1 .. && \
make -j"$(nproc)"

これまた時間がかかる。一気にcaffeのビルドまで行う。下記のメッセージが出ればOK.
image

4.2.4 caffeの環境変数の設定
root@osboxes:/home/osboxes/caffe/build# PYCAFFE_ROOT=\$CAFFE_ROOT/python
root@osboxes:/home/osboxes/caffe/build#PYTHONPATH=\$PYCAFFE_ROOT:\$PYTHONPATH root@osboxes:/home/osboxes/caffe/build#PATH=\$CAFFE_ROOT/build/tools:\$PYCAFFE_ROOT:$PATH
root@osboxes:/home/osboxes/caffe/build# echo "$CAFFE_ROOT/build/lib" >> /etc/ld.so.conf.d/caffe.conf && ldconfig

これで、caffe本体のインストールは完了であるが、まだjupyterのインストールが残っている。caffeのexampleはnotebookなので、jupyterのインストールが必要になる。

4.3 jupyterをインストール

基本的にルート権限でインストールする。
ここを参考(https://github.com/kyamagu/caffe-docker/blob/master/docker/jupyter/Dockerfile)
4.3.1 pipをインストール
sudo wget https://bootstrap.pypa.io/get-pip.py && \
python get-pip.py && \
rm get-pip.py

4.3.2 jupyter本体をインストール
sudo pip --no-cache-dir install ipykernel jupyter matplotlib sklearn hmmlearn && python -m ipykernel.kernelspec
4.3.3 scikit-imageをインストール
なぜかこのパッケージが入ってなかったので追加。
sudo pip install scikit-image
4.3.4 tiniをインストール
tiniをインストールしなくてもjupyterは動くが、dockerファイルにあったのでとりあえずインストール。
root@osboxes:/home/osboxes# wget https://github.com/krallin/tini/releases/download/${TINI_VERSION}/tini
root@osboxes:/home/osboxes# cp tini /usr/bin/tini

5 caffeのexampleを試す

5.1 jupyterを立ち上げる

root@osboxes:/home/osboxes# jupyter notebook

実行するとfirefoxが立ち上がってcaffeのフォルダーが見れる。
image

5.2 exampleのnotebookを開く

image

ctrl+enterを押して、notebookを実行して見る。
image

6 結語

以上で、virtualboxでcaffeのインストールが完了となる。ポイントはCUDAをインストールしないこどである。caffeのdockerファイルが意外な情報を提供している。

2
1
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
2
1