Python
MachineLearning
DeepLearning
TensorFlow

Python未経験エンジニアがMacでTensorFlowの実行環境+快適なコーディング環境を構築するまで

Python未経験者がGoogleが公開した機械学習ライブラリであるTensorFlowの実行環境と快適なコーディング環境を整えるためしっくはっくした記録です

Python自体も快適にコーディングしたかったので、Mac上で本記事作成時点の最新版であるPython 3.5.2 + PyCharmでTensorFlowのMNISTデモをワンクリックで実行できるまでの環境を構築してみます


Homebrewのインストール

パッケージ管理ツールであるHomebrewを初めにインストールします


console

$ /usr/bin/ruby -e "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/install)"


既にインストールされている場合も念のためアップデートしておくことをおすすめします


console

$ brew update


※インストール時にエラーが起こる場合はXcodeのコマンドラインツールをインストールすると解決する場合があります。Xcodeは事前にインストールしてください!


console

$ xcode-select --install



pyenv-virtualenvのインストール

Macには初めからPythonがインストールされていますがバージョンが2.x系だったり、El Capitanから導入されたSIPのせいで融通が効かなかったりするので

pyenvから最新版のPythonを入れ、さらにpyenv-virtualenvを使って環境を切り分けるのが良いと思います

以下のコマンドからツールのインストールを行ってください


console

$ brew install pyenv-virtualenv



Python最新版のインストール

まずはPython最新版をインストールします(ここでは3.5.2をインストールしています)

インストールできる一覧を表示するにはpyenv install -lと打ち込んで下さい


console

$ pyenv install 3.5.2

$ pyenv rehash

pyenv installでエラーが起こる場合はXcodeのコマンドラインツールをインストールすると解決する場合があります(2度目)


console

$ xcode-select --install



Python 3.5.2のTensorFlow用の環境を作成

TensorFlowの実行環境を独立させるため、インストールしたPython 3.5.2を元に名前をつけて環境を作ります。こうしておくことでプラグイン同士の競合によるエラーを減らしたり気軽に別のバージョンを試したりと仮想環境に近いことが出来ます

以下の"TensorFlow"の部分は環境の名前なので適宜変更して下さい


console

$ pyenv virtualenv 3.5.2 TensorFlow

$ pyenv rehash


作成したTensorFlow用の環境へ切り替え

pyenv globalを使って、作成したTensorFlow環境へ変更します


console

$ pyenv global TensorFlow


その後でpythonコマンドをたたくと3.5.2に変わっているはずです


console

$ python -V

Python 3.5.2

もし以下のようにpyenv内ではちゃんと切り替わっているのに、pythonコマンドでは参照が変更されていない場合は、、、


console

$ pyenv version

TensorFlow (set by /Users/hogehoge/.pyenv/version)
$ python -V
Python 2.7.10

この辺の設定を追加してみて下さい(3行目だけでもいいかも)


console

$ echo 'export PYENV_ROOT="$HOME/.pyenv"' >> ~/.bash_profile

$ echo 'export PATH="$PYENV_ROOT/bin:$PATH"' >> ~/.bash_profile
$ echo 'eval "$(pyenv init -)"' >> ~/.bash_profile

またTensorFlowインストール後は必要に応じて以下で環境を元に戻せます


console

$ pyenv global system


環境の指定は後述するPyCharmで行うので、必ずしもpythonコマンドがTenserFlow環境になっている必要はありません

もちろんpythonコマンドから実行する場合は必要ですが。


pipのインストール

次にPython向けのプラグイン管理ツールであるpipをインストールします

最新のPythonをインストールしていれば最初から入ってるらしいですが念のため。


console

$ sudo easy_install pip

$ sudo pip install --upgrade pip


TensorFlowのインストール

ここでようやくTensorFlowのインストールに移ります。


console

$ pip install --upgrade https://storage.googleapis.com/tensorflow/mac/tensorflow-0.9.0-py3-none-any.whl


TensorFlowのインストールURLはバージョン指定のようなので最新版は公式から確認して下さい。ここではv0.9を指定しています。


PyCharmのインストール

そして快適なPythonコーディング環境を構築するため、JetBrainネ申が開発したIDEであるPyCharmを以下からダウンロードします

https://www.jetbrains.com/pycharm/download/

補完やブレークポイントもバッチリ動作するしCommunity Editionなら無料で使うことが出来ます。スバラシイ!


PyCharmでプロジェクト作成&TensorFlow環境にプロジェクト設定を適用

PyCharmを起動したら適当にプロジェクトを作成して下さい。

その際にCreate Projectダイアログ上のInterpreterプルダウンから「3.5.2 virtualenv at ~/.pyenv/versions/TensorFlow」を指定して下さい。

また、あとから実行環境を変更する場合にはPreferences -> Project: PROJECT_NAME -> Project Interpreterのプルダウンからも変更できます


TensorFlowのMNISTデモを稼働させる

TensorFlowのMNISTデモの実装自体は公式のチュートリアルや他の解説記事を参考にソースとデータを配置して下さい(丸投げ)

とりあえず動かすだけならお手軽だったので私は↓のサイトの手順に従いました。

http://www.trifields.jp/try-tutorial-mnist-for-ml-beginners-of-tensorflow-1713

一通りソースとデータが用意出来たらおもむろにRunをクリックすれば画面下のコンソールに結果が出るはず

※コンソール上で実行する場合はpyenvで環境がTensorFlow用のものになっているか注意してください


おわり

すでにPythonをガリガリ使っている方はなんてことないと思いますが、TensorFlowを動かしてみたいがためにPythonを初めて触る私みたいな人だと、色々と勝手が違ってつまずくことがあったので備忘録として流れをまとめました。

インストールの手順はこの記事を参考にしました

http://qiita.com/hatapu/items/054dbab03607c47cb84f