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 つかうなら)
# 一部抜粋
# 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] のスクリプト実行すれば例のキモいやつできあがる。
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()
を呼べばリストがでてくるのでその中から。