LoginSignup
4
5

More than 5 years have passed since last update.

ド素人のための自家製Deepdream構築法(探索中)

Last updated at Posted at 2015-07-10

この記事

Mac向けの「とりあえず自分でDeepdreamをやる」ための解説です。
「『ターミナル』でcdとlsくらいは自在に使える」
「『Python』は使ったことないけど知っている」

くらいのレベル向けです。
ターミナルをまったく使ったことない人は厳しいかもしれません。

そしてわたしも全く詳しくありません。caffeが何か知りません。でしたが、やってる途中に画像のディープラーニングに適したパッケージだということは知りました。読み込むパッケージの意味とか何も分かっていないです。ご容赦ください。

「Saqooshaさんのガイドをもとにド素人がやってみた(けどうまくいってない)」くらいに見てもらえると幸いです。
http://qiita.com/Saqoosha/items/d1a10accdef197a9de68

Deepdreamって何

「Googleがつくった、コンピュータが見る夢」とか言われて流行ってますが、別に夢とかではないです。

具体的には、

  1. 画像をGoogleの画像認識プログラムに入力する
  2. プログラムが画像のあちこちを「建物」とか「犬」とかとして認識する
  3. プログラムの認識の通りに、元画像の一部を置き換える
  4. プログラムが認識したように置き換わった画像が出力される
  5. なんか悪夢っぽく見える

ということのようです。コンピュータが寝るわけじゃないし夢を見るわけでもないですが、そのほうが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

参考:
https://groups.google.com/forum/#!searchin/caffe-users/caffe$2F.build_release$2Ftools$2Fcaffe$20image$20not$20found%7Csort:date/caffe-users/Hi4HKumNIdM/nKp_piy7OtsJ

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

anacondacaffeフォルダがルートにある場合。そうでない場合はそれぞれのフォルダの場所を指定。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が死ぬのかな。

4
5
2

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
4
5