deepdream を動かしてみる

  • 74
    いいね
  • 2
    コメント
この記事は最終更新日から1年以上が経過しています。

Google の deep learning のきもいやつdeepdream を動かしてみる。
環境は OS X 10.10.4, iMac (27-inch, Late 2012), NVIDIA GeForce GTX 675MX 1024 MB。

まず Caffe インストール

ここ参考に。
http://caffe.berkeleyvision.org/installation.html
http://caffe.berkeleyvision.org/install_osx.html

CUDA
最新版の 7 が strongly suggested
https://developer.nvidia.com/cuda-downloads

Caffe は Anaconda の Python がいいつってるので、そっちいれる。
http://continuum.io/downloads
(brew のは uninstall か unlink する、はいってるなら)

ほか、必要なパッケージを brew でいれる。

brew install --fresh -vd snappy leveldb gflags glog szip lmdb
brew tap homebrew/science
# Anaconda の Python なら hdf5 はインストール済みっぽい
brew install hdf5 opencv
brew install --build-from-source --with-python --fresh -vd protobuf

boost と boost-python は最新版の 1.58.0 では、caffe コンパイルエラーになっちゃうのでいっこまえの 1.57.0 を入れる。↓いれかた
Itinerant Bioinformaticist: Caffe incompatible with Boost 1.58.0

brew uninstall boost boost-python
cd $(brew --prefix)
cd Library/Formula
curl -O https://raw.githubusercontent.com/Homebrew/homebrew/6fd6a9b6b2f56139a44dd689d30b7168ac13effb/Library/Formula/boost.rb
curl -O https://raw.githubusercontent.com/Homebrew/homebrew/3141234b3473717e87f3958d4916fe0ada0baba9/Library/Formula/boost-python.rb
brew install boost boost-python

ようやく caffe 本体

git clone --depth 1 git@github.com:BVLC/caffe.git
cd caffe
pip install -r python/requirements.txt
cp Makefile.config.example Makefile.config

Makefile.config は Anaconda 使うようのに書き換える。(Anaconda つかうなら)

Makefile.config
# 一部抜粋
# NOTE: this is required only if you will compile the python interface.
# We need to be able to find Python.h and numpy/arrayobject.h.
# PYTHON_INCLUDE := /usr/include/python2.7 \
#       /usr/lib/python2.7/dist-packages/numpy/core/include
# Anaconda Python distribution is quite popular. Include path:
# Verify anaconda location, sometimes it's in root.
ANACONDA_HOME := $(HOME)/anaconda
PYTHON_INCLUDE := $(ANACONDA_HOME)/include \
        $(ANACONDA_HOME)/include/python2.7 \
        $(ANACONDA_HOME)/lib/python2.7/site-packages/numpy/core/include \

# We need to be able to find libpythonX.X.so or .dylib.
# PYTHON_LIB := /usr/lib
PYTHON_LIB := $(ANACONDA_HOME)/lib

コンパイル。

make all -j4
make test
# CUDA ライブラリあるとこを適当に指定
export DYLD_FALLBACK_LIBRARY_PATH=/usr/local/cuda/lib:~/anaconda/lib
make runtest
# ↓ ドキュメントにないけど Python から caffe つかうには必要、たぶん
make pycaffe

caffemodel ファイルだけ別途配布なので↓から。
https://github.com/BVLC/caffe/tree/master/models/bvlc_googlenet
caffemodel_url ってかいてあるやつ。おとして caffe/models/bvlc_googlenet に入れる。

iPython Notebook

deepdream のサンプルコードは iPython Notebook 形式で配布されてるので、iPython Notebook をいれる。(Anaconda にはもとからはいってるっぽい)

pip install "ipython[notebook]"

deepdream 動かしてみる

入ってないならいれる。(Anaconda にはもとからはいってるっぽい)

pip install numpy scipy pil

deepdream おとす。

git clone --depth 1 git@github.com:google/deepdream.git

iPython Notebook 立ち上げる

cd deepdream-master
# CUDA まわりのライブラリがみつからない場合↓設定
export DYLD_FALLBACK_LIBRARY_PATH=/usr/local/cuda/lib:~/anaconda/lib
export PYTHONPATH=/path/to/caffe/python:$PYTHONPATH
ipython notebook

ブラウザ勝手にひらくので dream.ipynb 選ぶ。あとはツールバーの再生ボタンぽちぽちやれば上から python スクリプト実行されてく。In[3] のとこの 1 行目、caffemodel ファイルがあるパスに書き換えること。

model_path = '/some/path/caffe/models/bvlc_googlenet/' # substitute your path here

エラーでなければ In[7] のスクリプト実行すれば例のキモいやつできあがる。
inception.jpeg

iPython Notebook つかわずに

ふつうの Python からやるには、dream.ipynb にはいってたスクリプトをコピペでいっこのファイルにまとめて、あとはてきとうに。こんなかんじ。
https://gist.github.com/Saqoosha/50b83b10f8dfc1cc0a3b
↑ので↓これできる。
https://vimeo.com/132849531 (連番出力したあと After Effects でタイムリマップかけてる)
これはデフォルトの bvlc_googlenet じゃなくって finetune_flickr_style をつかってる。end パラメタも変更必要。pool5 つかってる。これかえるといろいろ絵もかわる。end に何が指定できるかは net.blobs.keys() を呼べばリストがでてくるのでその中から。