DeepDream
Googleの研究者が、画像認識に使われる人工神経ネットワークが見た『夢』と称する画像を公開しました。
画像を入力すると、その画像を解釈し、画像として出力し、さらにそれを解釈し、という伝言ゲームを繰り返すことでとんでもない「夢」を見るニューラルネット。
大変面白そうなので自分のMac で試してみました。
そんな DeepDream を動かすまでの流れをメモしました。
環境によってハマりどころは違うとは思いますが DeepDream を動かしたい人の参考になれば幸いです。
追記:Deep Dream のアルゴリズムについて自分なりに解釈したもの を SlideShare に Upload しました。
対象読者
- コマンドラインはとりあえず使える
- とりあえず自分の環境で DeepDream を使ってみたい。いじってみたい。
- CUDAとかつかってガチな環境構築までは目指さない
ちなみに Web から DeepDream するサービスもあるようですので、とりあえず何か自分の画像で試してみたい人はそちらを使ってみるのもおすすめです。
グーグルの人工知能を利用できるWebインターフェースが登場
注意
コマンドの実行は自己責任でお願いします
環境
- MacBook Pro (Retina, 15-inch, Mid 2014)
- グラフィック:Intel Iris Pro 1536 MB (CUDA無し)
- OS:OS X Yosemite 10.10.3
手順概要
これから入れていくもの。
- brew: Mac にいろいろなソフトをコマンドラインから簡単に入れられるやつ
- pip: python のライブラリをコマンドラインから簡単に入れられるやつ
- caffe: DeepDream で使われる「 DeepLearning 」というニューラルネットの学習モデルを扱うプログラム
- ニューラルネット:人間の脳の神経細胞(ニューロン)網を模して作られた学習モデル
- deepdream: DeepDream 本体
インストール手順
brew をインストール
brew をまだインストールしていない人は
http://brew.sh/index_ja.html
を見てインストールしてください。
ruby -e "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/install)"
とコマンドラインで打てばいいはずです。
caffeに必要なもののインストール
参考:http://caffe.berkeleyvision.org/install_osx.html
brew 周りの更新
brew update
brew upgrade
brew で必要な物を入れる
brew install --fresh -vd snappy leveldb gflags glog szip lmdb python wget
brew tap homebrew/science
brew install hdf5 opencv
brew install --build-from-source --with-python -vd protobuf
brew install --build-from-source -vd boost boost-python
brew install protobuf boost
pip をインストール
/usr/local/bin/easy_install pip
(コマンドが見つかりません、と出る場合 where easy_install
等として探しましょう。)
caffe 本体のインストール
参考: http://qiita.com/Saqoosha/items/d1a10accdef197a9de68
ソースをダウンロードしてくる
git clone --depth 1 https://github.com/BVLC/caffe.git
caffe のディレクトリに移動
cd caffe
pip で必要なライブラリを入れる
python/requirements.txt に必要なライブラリが書かれているので、それを以下のコマンドで入れる。
sudo pip install --upgrade -r python/requirements.txt
Makefile.config をいじる
サンプルファイルをコピー
cp Makefile.config.example Makefile.config
Makefile.config をテキストエディタで開いて、以下を修正していきましょう。
-
# CPU_ONLY := 1
の # を取る。-
CPU_ONLY := 1
になるはず
-
-
PYTHON_INCLUDE
の/usr/lib/python2.7/dist-packages/numpy/core/include
となっている行を適宜修正- 私の場合
/usr/local/Cellar/numpy/1.9.2_1/lib/python2.7/site-packages/numpy/core/include
にしました。
- 私の場合
-
PYTHON_LIB
を適宜修正- 私の場合
/usr/local/Cellar/python/2.7.10_1/Frameworks/Python.framework/Versions/2.7/lib
にしました
- 私の場合
保存。
おまじない
ls /usr/local/lib/libjpeg.8.dylib
してみて、
/usr/local/lib/libjpeg.8.dylib
がもし無いようだったら、
sudo ln -s /usr/local/Cellar/jpeg/8d/lib/libjpeg.8.dylib /usr/local/lib/
等としてシンボリックリンクを貼るといいと思います。
コンパイル
いよいよ caffe をコンパイルしていきます。
make all
make pycaffe
make test
make runtest
runtest の後全部OKが出るか見ましょう。
ディレクトリから出る
cd ..
DeepDream のインストール
お疲れ様でした。あとは DeepDream を入れましょう。
ソースのダウンロード
git clone --depth 1 https://github.com/google/deepdream.git
ディレクトリに移動
cd deepdream
おまじない
brew unlink jpeg
brew link jpeg
sudo pip uninstall pil
最後のはエラーが出ても問題ありません。
必要な python のライブラリをインストール
sudo pip install pyzmq jinja2 protobuf "ipython[notebook]" functools32
sudo pip install pil --allow-external pil --allow-unverified pil
私の環境では素直にPILが入らなかったので、 --allow-external, --allow-unverified をつけてインストールしました。
path を通す
bash を使っている方は ~/.bashrc に、zshを使っている方は ~/.zshrc に以下を追記します。
どちらを使っているかわからない人は echo $SHELL
と打つとどっちか分かります。
export PYTHONPATH=~/git/caffe/python/:$PYTHONPATH
上記を適用します。コマンドラインで以下を打ちます。( bash の人は .bashrc に変えてください。)
source ~/.zshrc
DeepDream の実行に必要なニューラルネットのモデルをダウンロード
wget http://dl.caffe.berkeleyvision.org/bvlc_googlenet.caffemodel -P ../caffe/models/bvlc_googlenet/
お疲れ様でした!これで完了です。
実行
deepdream 内で以下を打ちます。
ipython notebook
ブラウザが立ち上がります。
dream.ipynb というリンクをクリックします。
何やら説明とコードが表示されたページが表示されます。
上から順に、コードをクリックした後、上部の再生ボタンを押すと、そのコードが実行されます。
順番に実行していくとDeepDreamできます。
自分の画像を使いたい場合、 img = np.float32(PIL.Image.open('******'))
となっている部分の ****** をいじりましょう。
エラーが表示される場合、がんばって直してください←