Anaconda 環境に Google の人工知能オープンソース Tensorflow をインストールしてみた

Anaconda 環境に Google の Tensorflow をインストールしようとしたら微妙につまづいたので、解決方法をメモしておく。 

** R ユーザーの人はこちらをどうぞ↓

datalove.hatenadiary.jp

背景

Tensorflow は Google が発表した 機械学習や Deep learning のオープンソースライブラリ。

pip でインストールできるようになっているが、公式ガイドでは既存環境に影響を与えないように、virtualenv や docker 環境を用意してそこにインストールすることを推奨している。

 

当然ながら Tensorflow のモジュールは Anaconda 環境に元からインストールされているわけではない。そこで下記の過去記事で紹介した方法で pip を使ってインストールしてみたところちょっとつまづいたので解決方法のメモ。 

datalove.hatenadiary.jp

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

 

ちなみに、ソースコードからインストールする場合はこちらをどうぞ

datalove.hatenadiary.jp

 

と、ここで次のようなエラーが出てインストールが止まる。

 

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 とかしたいから、ソースからインストールしたい、という場合はこちら

datalove.hatenadiary.jp

サクッと TensorFlow を試したい場合は、TensorFlow Learn (旧: skflow )を使うと簡単です! scikit-learn 経験者ならぜひ読んでみて! 

datalove.hatenadiary.jp

前述 TensorFlow Learn の学習結果を tensorboard でチャート表示とかする方法

datalove.hatenadiary.jp

TensorFlow の tips 的な何か

datalove.hatenadiary.jp

datalove.hatenadiary.jp