Anaconda 環境に Google の人工知能オープンソース Tensorflow をインストールしてみた
Anaconda 環境に Google の Tensorflow をインストールしようとしたら微妙につまづいたので、解決方法をメモしておく。
** R ユーザーの人はこちらをどうぞ↓
背景
Tensorflow は Google が発表した 機械学習や Deep learning のオープンソースライブラリ。
pip でインストールできるようになっているが、公式ガイドでは既存環境に影響を与えないように、virtualenv や docker 環境を用意してそこにインストールすることを推奨している。
当然ながら Tensorflow のモジュールは Anaconda 環境に元からインストールされているわけではない。そこで下記の過去記事で紹介した方法で pip を使ってインストールしてみたところちょっとつまづいたので解決方法のメモ。
Anaconda の TensorFlow 用環境を作る
Anaconda は conda env create コマンドで複数の python 実行環境を作ることができる。
既存環境とは別に Tensorflow 専用の環境を次のようにして作成する。
~ % conda env export -n root > conda-root.yml
~ % vim conda-export.yml
## name: root のところを、name: [自分の環境の名前] に変更して別名ファイルへ保存。ここでは name: tensorflow / ファイル名:conda-tensorflow.yml とする
~ % conda env create -f conda-tensorflow.yml
~ % source activate tensorflow
(tensorflow)~ % (
pip を使って TensorFlow をインストール
Anaconda 環境はデフォルトでは python3 環境なので、公式ガイドの python3 向けの手順に沿ってインストールする。
(tensorflow)~ % easy_install --upgrade six
(tensorflow)~ % pip install --upgrade https://storage.googleapis.com/tensorflow/mac/tensorflow-0.6.0-py3-none-any.whl
ちなみに、ソースコードからインストールする場合はこちらをどうぞ
と、ここで次のようなエラーが出てインストールが止まる。
Installing collected packages: setuptools, protobuf, tensorflow
Found existing installation: setuptools 18.5
Cannot remove entries from nonexistent file /Users/SOME-USER-NAME/anaconda/envs/tensorflow/lib/python3.5/site-packages/easy-install.pth
パッケージの依存関係のコンフリクトが原因。解決方法は次の2つ
1. TensorFlow インストール時にすでにインストールされている依存パッケージは無視する
このエラーは、すでに setuptools がインストールされていながら、TensorFlow インストール時に別バージョンの setuptools をバンドルでインストールしようとして発生しているもの。
ならば、TensorFlow にバンドルされている方はインストールしなければいいじゃないか、という方法。pip で TensorFlow をインストールする時に、--ignore-installed オプションをつける。
pip install --upgrade --ignore-installed https://storage.googleapis.com/tensorflow/mac/tensorflow-0.6.0-py3-none-any.whl
2. pip で setuptools を TensorFlow と互換性があるものに upgrade する
1. に対し、こちらは TensorFlow にバンドルされている setuptools と互換性のあるものを、anaconda 環境側の setuptools を upgrade してやろう、というもの。--upgrade -I オプションをつけて setuptools を upgrade してから、TensorFlow をインストールする。
pip install --upgrade -I setuptools
pip install --upgrade https://storage.googleapis.com/tensorflow/mac/tensorflow-0.6.0-py3-none-any.whl
どちらの方法でも問題が解消したという報告が多くされているが、ignore はまずいだろう・・・と思い、今回は 2. でいくことに。
Collecting setuptools (from protobuf==3.0.0a3->tensorflow==0.6.0)
Using cached setuptools-18.8.1-py2.py3-none-any.whl
Installing collected packages: setuptools, protobuf, tensorflow
Successfully installed protobuf-3.0.0a3 setuptools-18.8.1 tensorflow-0.6.0
今度はうまくいったっぽい。
pip list で確認すると、setuptools も依存関係を解消したバージョンがインストールされている。
setuptools 18.8.1
## 元はこれ --> setuptools 18.5 py35_0 defaults
python を起動してい import を試したところ無事できた!っぽい。
(tensorflow)~ % python
>>> import tensorflow
TensorFlow のインストールが終わった人はこちらもどうぞ
GPU とか分散環境向けの Distributed TensorFlow とかしたいから、ソースからインストールしたい、という場合はこちら
サクッと TensorFlow を試したい場合は、TensorFlow Learn (旧: skflow )を使うと簡単です! scikit-learn 経験者ならぜひ読んでみて!
前述 TensorFlow Learn の学習結果を tensorboard でチャート表示とかする方法
TensorFlow の tips 的な何か