この記事
Mac向けの「とりあえず自分でDeepdreamをやる」ための解説です。
「『ターミナル』でcdとlsくらいは自在に使える」
「『Python』は使ったことないけど知っている」
くらいのレベル向けです。
ターミナルをまったく使ったことない人は厳しいかもしれません。
**そしてわたしも全く詳しくありません。caffeが何か知りません。**でしたが、やってる途中に画像のディープラーニングに適したパッケージだということは知りました。読み込むパッケージの意味とか何も分かっていないです。ご容赦ください。
「Saqooshaさんのガイドをもとにド素人がやってみた(けどうまくいってない)」くらいに見てもらえると幸いです。
http://qiita.com/Saqoosha/items/d1a10accdef197a9de68
Deepdreamって何
「Googleがつくった、コンピュータが見る夢」とか言われて流行ってますが、別に夢とかではないです。
具体的には、
- 画像をGoogleの画像認識プログラムに入力する
- プログラムが画像のあちこちを「建物」とか「犬」とかとして認識する
- プログラムの認識の通りに、元画像の一部を置き換える
- プログラムが認識したように置き換わった画像が出力される
- なんか悪夢っぽく見える
ということのようです。コンピュータが寝るわけじゃないし夢を見るわけでもないですが、そのほうがWebメディアは取り上げやすくていいですね。
参考:http://nlab.itmedia.co.jp/nl/articles/1507/07/news160.html
準備
空き容量がたぶん3GBくらい要ります。そしてDLとインストールにだいぶ時間かかります。
Saqooshaさんの投稿を参考に。
http://qiita.com/Saqoosha/items/d1a10accdef197a9de68
①Homebrewをダウンロード(入ってなかったら)
ruby -e "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/install)"
とターミナルにかちこみましょう。XcodeとCommand Line Toolが必要っぽい。
参考:http://brew.sh/index_ja.html
②CUDAをダウンロード
https://developer.nvidia.com/cuda-downloads
やや時間かかります。
③AnacondaのPythonをダウンロード##
http://continuum.io/downloads
DMGはだめっぽいのでPKGをダウンロード。さらに時間かかります。
homebrewのpythonは外したほうがいいみたいなので、インストールした後にこのコマンドをいれておきましょう。
brew uninstall python
④その他必要なファイルをダウンロード##
ターミナルを使います。
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。
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
Saqooshaさんのは1.57.0を入れるために1.58.0のboostとboost pythonをuninstallしてたけど、ぼくのは1.57.0だったのでuninstallしなくてよかった。これもまあまあ時間かかる。
⑤最低限のpython環境をつくる
とりあえずpipというpythonを扱うためのプログラムが必要になる。
pythonオフィシャルには下記のget-pip.pyを入れる方法がのってるけど、ぼくはうまくいかなかった。
brew install python
python get-pip.py
ので、下記をつかうとうまくいった。
brew install python
pip install virtualenv
参考:http://stackoverflow.com/questions/24483486/error-when-trying-to-install-pip-on-mac-10-7
⑥caffeをなんとかする
git clone --depth 1 git@github.com:BVLC/caffe.git
ぼくはサーバの設定か分からないけどコマンド入力ではDLできなかったので、githubから直接ダウンロード。
https://github.com/BVLC/caffe
からダウンロードして解凍して、フォルダ名をcaffeに変えて、ライブラリにぶちこみ、ターミナルでルートフォルダに戻って下記を実行。
cd caffe
pip install -r python/requirements.txt
cp Makefile.config.example Makefile.config
Makefile.comfigをテキストエディットとかで開き、先頭の#を下記のように書き変える。
# 一部抜粋
# 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
export DYLD_FALLBACK_LIBRARY_PATH=/usr/local/cuda/lib:$HOME/anaconda/lib:/usr/local/lib:/usr/lib:/opt/intel/composer_xe_2015.2.132/compiler/lib:/opt/intel/composer_xe_2015.2.132/mkl/lib
make runtest
# ↓ ドキュメントにないけど Python から caffe つかうには必要、たぶん
make pycaffe
warningとか出るけどたぶんなんとかなる。(英語リファレンスにもだいたいそんなようなこと書いてある)
make runtest
をやってこういうのが出ればたぶん正解。
[----------] Global test environment tear-down
[==========] 755 tests from 123 test cases ran. (31003 ms total)
[ PASSED ] 755 tests.
困ったらこれをやり直すと幸せになれそう。
make clear
make
make test
make runtest
make pycaffe
make runtest
がうまくいったら、
http://dl.caffe.berkeleyvision.org/bvlc_googlenet.caffemodel
これをダウンロードしてcaffe/models/bvlc_googlenet
に入れる。
⑦iPython Notebookを入れる
pip install "ipython[notebook]"
長い準備はこれで大体おわりです。
Deepdream動かす
その前の設定
pip install numpy scipy pil
これは打ってみたけどやってみたけど「pilが見つかりません」みたいなこと言われた。pilは打たなくてよさそう。
git clone --depth 1 git@github.com:google/deepdream.git
これもぼくはやっぱりアクセスできないので、githubから直接DLする。
https://github.com/google/deepdream
解凍してルートにdeepdream-master
ってフォルダ名でいれておく。そんでcaffe
フォルダからdeepdream-master
フォルダに移る。
cd ../deepdream-master
# CUDA まわりのライブラリがみつからない場合↓設定
export DYLD_FALLBACK_LIBRARY_PATH=/Users/ユーザー名/anaconda/lib:/usr/local/lib:/usr/lib:/Developer/NVIDIA/CUDA-7.0/lib:$DYLD_FALLBACK_LIBRARY_PATH
export PYTHONPATH=/Users/ユーザー名/caffe/python:$PYTHONPATH
※anaconda
、caffe
フォルダがルートにある場合。そうでない場合はそれぞれのフォルダの場所を指定。Saqooshaさんありがとうございます!
参考:
・https://github.com/BVLC/caffe/issues/1273
iPython動かす
ipython notebook
とするとブラウザが自動で開き、dream.ipynbを押すところまでうまくいくんだが、どうしても再生ボタン押してもうまくいかない。
The kernel appears to have died. It will restart automatically.
という表示が出て進まない。いったいなんなんでしょー???
ということで
Kernelが死なない方法を探しております。
手軽にやるなら
ここにめっちゃdeepdreamしてくれるサイト載ってた。
あれれ?
上記のページには、deepdreamしてくれるサイトの下に自家製deepdreamのやりかたも載っているのだが、よく見てみると
You need an NVidia Graphics card GPU that is on this list in order to be able to run CUDA/Caffe. Find out your GPU by clicking 'About Your Mac' > 'More Info...' > Graphics. Mine was Intel, so I cant use CUDA/Caffe.
とか書いてある。NVidiaのグラフィックカードじゃないとダメなんだそうです。なんでダメなのかは書いてない。ぐぐってもいまいち出てこない。当方のはIntel HD Graphics 3000 512 MB。ダメな原因はこれか?でもCPUでもめっちゃ遅いけどできるって書いてあるしな…遅すぎてKernelが死ぬのかな。