Help us understand the problem. What is going on with this article?

ディープラーニングを理解するために環境を作ってみた

More than 3 years have passed since last update.

背景

ディープラーニングとはなんぞやのとっかかりとしてまずは視覚的に見えるものを用意したい

所感

  • 環境構築にめちゃめちゃ苦労した・・・参考サイト通りにうまいこと動かずいろんなサイトを巡っては振り出しの繰り返しでした
  • エラーが出たらとにかくログをチェックそこからGitのREADMEを読む
  • StackOverflowとQiitaはめちゃ助けられました

目的

  • 下記サイトのブロック崩しを学習している様を視覚出来るようにする

https://elix-tech.github.io/ja/2016/06/29/dqn-ja.html

必要な物

  • tensolflow
  • keras
  • OpenAI Gym

動作環境

  • Mac(OS X El Capitan)

とにかく動かすという点に絞ってますので的はずれな事もしてる可能性大なので実施の際は自己責任でお願いします。

Tensflowをインストール

参考サイトを鵜呑みにコピペで進めると必ず後悔します!自身の環境を照らし合わせながら進めることを強く推奨します!

pythonをインストールする

  • macは既にpythonが入っているので入ってなければ2系をインストールしてください
  • 下記コマンドでバージョンを確認
python --version

要確認

  • OSがEl Capitanでコマンド実行時に下記のように表示されていたらHomebrewでPythonをインストールを実行してください。ちょっと下に手順を掲載しています。
which python
/usr/bin/python

PyPIをインストールする

  • インストールされているか下記コマンドで確認
pip -V
  • なければ下記コマンドからインストールする
curl -kL https://raw.github.com/pypa/pip/master/contrib/get-pip.py | python

TensolFlowをインストールする

必ず目的にあったものをインストールしましょう

  • 今回は下記の要件でインストールします
  1. CPU
  2. Mac
  3. Python2系

要チェック

sudo easy_install pip
sudo pip install --upgrade virtualenv

virtualenv --system-site-packages ~/tensorflow
  • ~/tensorflowのディレクトリが出来ます

Activateする

下記コマンドでactivateします

source ~/tensorflow/bin/activate

チュートリアルから動作を確認しましょう

  • 終了するときは「deactivate」で終了します

インストールが上手くいかない場合

HomebrewでPythonをインストール

  • 何度も躓いてやり直したので下記のhomebrewでPythonを入れたような気がするので下記も記録として残しておきます

HomebrewでPythonをインストール

brew update
brew install python 
pip install --upgrade pip setuptools
brew linkapps python

Pythonのパスをシェルの設定に書いてあげる

echo 'export PATH=/usr/local/bin:/usr/local/share/python:$PATH' >>~/.zshrc
source ~/.bash_profile
  • 下記コマンドで確認
which python
/usr/local/bin/python
  • 「/usr/local/bin/python」が表示されていればオッケー

Mac OS X El CapitanにTensorFlowをpipで入れるときの落とし穴

TensorFlowインストールでハマったとこ

  • 正直どこではまってるかわからん部分が多い(そもそもハマってるかどうかすら気づいてない・・・)
  • Hello worldはすぐに出力できるけどMNISTとかでエラー出まくり
  • エラーが出たときはインストールでミスってる可能性が大
  • エラーが出たときはとにかくググるStackOverFlowあたりで同様の人がまあまあいる

一番ハマった部分

ImportError: No module named contrib.ctc

StackOverFlowにもあがってたけど自分の原因とは違うっぽい

http://stackoverflow.com/questions/39661433/keras-import-fails-no-module-named-contrib-ctc

このエラーはKerasインストールのフェーズでも苦しめられました

参考サイトのインストールメモをそのままにインストールしてたのが原因かもしれない。ドキュメントのインストール手引をしっかり読みましょう。

はっきりした原因は英語が翻訳できずふわっとした理解になりましたが要件にあった条件でインストールを何度もやり直すことで解消されました。

Kerasをインストール

apt-getを使えるようにする

  • finkのサイトから自身のOSバージョンに合ったものをダウンロードして解答する
  • 下記コマンドを実行する
cd ~/Downloads/fink-0.39.2
./bootstrap

インストール中にいろいろ質問があうが基本デフォルトで問題なさそうです。時間はかなりかかります。

  • finkをpath登録する
/sw/bin/pathsetup.sh
  • Terminalを再起動でapt-getが利用可能になります。
#finkをアップデート
fink selfupdate-rsync

Kerasをインストールする

参考リンク:本家ドキュメント

  • 下記コマンドを実行する
sudo pip install scipy
sudo pip install scikit-learn
sudo pip install pyyaml
sudo apt-get install libhdf5-dev
sudo pip install h5py
sudo pip install keras

libhdf5-devが見つからずインストールできなかったのでスキップしました。いらない?

  • Pythonを起動してKerasを呼んで見る
python

import keras

とすると

Use Using Theano backend

Use Using TensorFlow backend

が出力されます

  • Theanoと出力された場合(TensorFlowの場合でも確認はしてください)

  • 下記ファイルを無ければ作成して編集する

vi ~/.keras/keras.json
{
    "image_dim_ordering": "th", 
    "epsilon": 1e-07, 
    "floatx": "float32", 
    "backend": "tensorflow"
}
  • 上記のように編集します(これじゃないと次のOpenAIGymでエラーがでます)

参考リンク:バックエンドでTensorFlowを利用する

Keras動作確認

参考リンク

上記リンクを参考にいろいろ試して動作するか確認する

Kerasインストールではまったとこ

  • そもそもTensolFlowのインストールの時点で間違っていることに気づかず進めたので地獄を見た
  • contrib.ctc絡みのエラー頻発
  • Kerasってなんぞやの状態で構築をしたのが最大の間違いかもしれない
  • 上記理由で構築中でも何をしてるか自分の立ち位置がわからず

contrib.ctcが憎い

  • TensorFlowのインストールでもそうでしたが構築中に何度もこのエラーに頭を悩まされました
  • 上手く行って次進められると思ったらあらわれます
  • StackOverFlowでも似たような質問があって試してみたけどダメだった(この件に関してはTensorFlowのインストールがミスってる可能性大)

OepnAIGymをインストール

  • これがインストールできれば終わりも近いです

OpenGymをインストール

git clone https://github.com/openai/gym
cd gym
pip install -e .

必要なものをインストールしていく

  • インストール自体は完了ですがこれでは目的のブツは動きません

Scikit-Imageをインストール

  • 画像描画処理に関するアルゴリズムを集めたライブラリだそうです。下記コマンド実行でインストール
sudo pip install scikit-image

参考リンク:http://nonbiri-tereka.hatenablog.com/entry/2014/11/27/102156

matplotlibをインストール

  • 実行時にmatplotlibがないとぐずってたのでこれもインストール
  • グラフ描画のライブラリっぽい。多分実行後のグラフを出力するのに利用されるっぽいたぶん
pip install matplotlib

pip install gym[all]する

  • 最後にハマった場所。コマンド打っても「atari」で毎回コケるしStackOverFlowにも解決方法載ってない(糸口はあったけど)

このサイトで原因はわかったけどそもそもインストールでコケる・・・

  • よくよく見たらGitHubに書いてたオチ

GitHubで「atari」を調べてみた

The Atari environments are a variety of Atari video games. 
If you didn't do     
the full install, you can install dependencies via 
pip install -e '.[atari]' 
(you'll need cmake installed) and then get started as follow:
  • cmakeインストールが必要やでってことでインストールします
brew install cmake

参考リンク:http://a244.hateblo.jp/entry/2016/09/05/063000#CMake

  • 再度OpenAIGymをインストール
pip instal gym[all]

これが通れば後は実行するだけ

ピンポールゲームを起動

ソースファイルを取得

git clone https://github.com/elix-tech/dqn
cd dqn
python dqn.py
  • ゲームが起動して強化学習が始まります
  • dqn.pyファイルを編集することで学習内容をチューニングすることができます。

スクリーンショット 2016-11-25 11.51.06.png

起動時にエラーが出る場合

  • エラーをよく確認しましょう。あれこれインストールしてって表示されるので言われるがまま足りないものをインストールしていきましょう。
  • 以上で完了ですお疲れ様です

導入時に参考になったサイトのリンク集

https://github.com/fchollet/keras/pull/3436#issuecomment-240230596
http://stackoverflow.com/questions/39848466/tensorflow-keras-convolution2d-valueerror-filter-must-not-be-larger-than-t
http://tjo.hatenablog.com/entry/2016/06/09/190000
https://elix-tech.github.io/ja/2016/06/29/dqn-ja.html
https://keras.io/#getting-started-30-seconds-to-keras
http://tjo.hatenablog.com/entry/2016/06/09/190000
https://gym.openai.com/
http://qiita.com/masataka46/items/f64ce9c110113ab8e517
http://nonbiri-tereka.hatenablog.com/entry/2014/11/27/102156
https://github.com/fchollet/keras/pull/3827/commits/5ea4afe0d1b9d072e1cb793a277cc4037417b11a
https://github.com/fchollet/keras/pull/3436#issuecomment-240230596
https://keras.io/getting-started/sequential-model-guide/
http://qiita.com/bohemian916/items/4f0736dcea932a162d9e
https://www.tensorflow.org/versions/r0.9/get_started/os_setup.html#pip-installation
https://www.tensorflow.org/versions/r0.9/get_started/os_setup.html#test-the-tensorflow-installation
http://walkingmask.hatenablog.com/entry/2015/11/16/224638
http://qiita.com/shngt/items/0d9a5ea47dddd97fcd27
https://keras.io/ja/
http://pythondatascience.plavox.info/python%E3%81%AE%E3%82%A4%E3%83%B3%E3%82%B9%E3%83%88%E3%83%BC%E3%83%AB/anaconda-ubuntu-linux/
http://kk6.hateblo.jp/entry/20110815/1313405197
http://qiita.com/yu-sa/items/351969b281f3aea5e03d
http://qiita.com/como1559/items/feac9bacbbf362817c66
http://qiita.com/masataka46/items/227fbfbda98a901f6720
http://qiita.com/masataka46/items/227fbfbda98a901f6720
http://a244.hateblo.jp/entry/2016/09/05/063000#CMake
http://stackoverflow.com/questions/39848466/tensorflow-keras-convolution2d-valueerror-filter-must-not-be-larger-than-t

meso_
Why not register and get more from Qiita?
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away