TensorFlow環境構築

# この記事について
TensorFlowの導入方法についてご説明致します。WindowsでPython3系のTensorFlowを利用される方であれば参考になるかと思います。
目標は、Windowsのパソコンに、TensorFlow r1.0を導入します。そして、Hello, world! を表示させます。
Linux, Macをお使いの方は、TensorFlow公式サイトの参照をお願い致します。
https://www.tensorflow.org/install/
私もまだ、未熟ですのでご不明な点等ございましたらご指摘お願い致します。

(2017年8月15日追記)
外部サイトではありますが、**CentOS7にTensorFlow(GPU利用)の環境を構築**する方法を記事に致しました。
Linuxをお使いの方は、参考になる部分もあるかと思いますので、宜しければご覧ください。
TensorFlow(GPU利用)をCentOS7で使う(API r1.2): http://isboj.wp.xdomain.jp/2017/08/08/tensorflow_centos7_api-r1-2/


# 構築する環境について
- Windows 10
- Python3.6(Anaconda4.3を利用)
- TensorFlow Python API r1.0

#1. Anacondaをインストール
まずは、Pythonの実行環境を作ります。普通にPythonをインストールしても良いのですが、数学系のライブラリなどがあらかじめ豊富に用意されているAnacondaディストリビューションを利用いたします。

##1.1. Anacondaをダウンロード
以下のURLよりAnacondaをダウンロードします。
https://www.continuum.io/downloads#windows
URLをクリックするとダウンロードサイトに飛びますので、Anaconda 4.3.1のPython 3.6 version(64bit)をクリックします。
![キャプチャ.PNG](https://qiita-image-store.s3.amazonaws.com/0/154325/301df274-35e1-0ebd-37fa-adfe4d8ddc81.png)
(32bitの方は、32bitの方ををダウンロードする必要がありますが、確認は64bitのみでしか行っておりません。)

##1.2. Anacondaをインストール
先ほどダウンロードしたexeファイルをクリックしてください。
すべてデフォルトでインストールして構いません。全体の流れは以下になります。
![キャプチャ1.PNG](https://qiita-image-store.s3.amazonaws.com/0/154325/657b7370-becc-be7c-51e6-121523a637fd.png)
![キャプチャ2.PNG](https://qiita-image-store.s3.amazonaws.com/0/154325/267e6c43-58f9-1e02-5538-27b2b4e6d05d.png)
![キャプチャ3.PNG](https://qiita-image-store.s3.amazonaws.com/0/154325/5ff883f2-b838-33f7-4a9d-6bb1e35c94f1.png)
![キャプチャ4.PNG](https://qiita-image-store.s3.amazonaws.com/0/154325/b77d7d6c-79fb-028d-618a-95cccfefe3d7.png)
このあと、インストールになりますので少し時間がかかります。
これが終了すればAnacondaのインストールが完了です。パス設定も自動的に行ってくれます。

#1.3. インストールを確認する
インストールができましたので、プログラムを実行してみます。
まずは、コマンドプロンプトを開きます。
コマンドプロンプトは「すべてのプログラム」→「Windowsシステムツール」内にあります。
それでは、コマンドプロンプトにPythonと入力して、Pythonインタラクティブシェルを起動してみます。

```
C:>python
Python 3.6.0 |Anaconda 4.3.1 (64-bit)| (default, Dec 23 2016, 11:57:41) [MSC v.1900 64 bit (AMD64)] on win32
Type "help", "copyright", "credits" or "license" for more information.
>>> print("Hello, world!")
Hello, world!
>>> exit()
C:>
```

このように、Python3.6およびAnacondaでプログラムが実行できました。
これで、うまくできない場合はインストールが失敗していますので、もう一度確認してください。

#2. TensorFlowを使えるようにする
ここでは、Anacondaで仮想環境をつくり、TensorFlowを使えるようにします。

##2.1. Anacondaで仮想環境を作る
1.3.項のように、コマンドプロンプトを起動します。
ここで、今回Python3.6を利用する前提で進めてきましたが、Python3.6ではTensorFlowの導入が上手くいきませんでしたので、仮想環境はPython3.5で作成します。このように、手軽にバージョンを変更できることもAnacondaの利点です。
それでは、TensorFlow用に仮想環境を作ります。conda createというAnacondaのコマンドを利用します。ここでは、tensorflowという名前でPython3.5の実行環境をAnacondaのパッケージを含めて作成します。

```
C:>conda create -n tensorflow python=3.5 anaconda

The following NEW packages will be INSTALLED:

    _license:            1.1-py35_1
    ===途中省略===
    xlwt:                1.2.0-py35_0
    zlib:                1.2.8-vc14_3       [vc14]

Proceed ([y]/n)? y

#
# To activate this environment, use:
# > activate tensorflow
#
# To deactivate this environment, use:
# > deactivate tensorflow
#
# * for power-users using bash, you must source
#
C:>
```

完了まで少し時間がかかると思いますので、お待ちください。
完了したら、先ほど作成した仮想環境に入ります。

```
C:>activate tensorflow

(tensorflow) C:>
```

(tensorflow)と表示されて、仮想環境に入れたことが確認できました。

## 2.2. TensorFlowのライブラリを導入する
ディープラーニングでは、GPUを使うことにより高速に計算することができます。そのため、TensorFlowにもGPUを利用するものと、CPUのみ利用するという2つのライブラリが存在します。今回は、CPUのみ利用のライブラリを導入します。しかし、nVidia社のGPU搭載している方は、GPU利用のライブラリを導入することもできます。バージョンなどで制約がありますが、詳しい情報は以下のURLよりご覧いただけますので、興味のある方はご覧ください。
https://www.tensorflow.org/install/install_windows

ここから先は、CPUのみ利用することを前提に進めて参ります。
先ほどの仮想環境で、以下のコマンドを入力します。

```
(tensorflow) C:>pip install --ignore-installed --upgrade https://storage.googleapis.com/tensorflow/windows/cpu/tensorflow-1.0.1-cp35-cp35m-win_amd64.whl
```

以上を実行すると、少し時間がかかった後に完了すると思います。

## 2.3. TensorFlowでHello, world!

最後に、tensorflowが利用できることを確認します。
先ほどの仮想環境で以下を実行します。

```
(tensorflow) C:>python
Python 3.5.2 |Anaconda 4.3.1 (64-bit)| (default, Jul  5 2016, 11:41:13) [MSC v.1900 64 bit (AMD64)] on win32
Type "help", "copyright", "credits" or "license" for more information.
>>> import tensorflow as tf
>>> hello = tf.constant('Hello, TensorFlow!')
>>> sess = tf.Session()
>>> print(sess.run(hello))
E c:\tf_jenkins\home\workspace\release-win\device\cpu\os\windows\tensorflow\core\framework\op_kernel.cc:943] OpKernel ('op: "BestSplits" device_type: "CPU"') for unknown op: BestSplits
===途中省略===
E c:\tf_jenkins\home\workspace\release-win\device\cpu\os\windows\tensorflow\core\framework\op_kernel.cc:943] OpKernel ('op: "UpdateFertileSlots" device_type: "CPU"') for unknown op: UpdateFertileSlots
b'Hello, TensorFlow!'
>>>
```

以上のように、Hello, TensorFlow!が出力されていることがわかります。
ここで、上の実行結果ではエラーが発生しています。これは、Windowsにpipを利用してインストールする場合に起きる問題らしく、2017年3月現在改善されてないことが判明しています。プログラムの実行は可能であるため、気持ちの良いものではありませんがこのままにしておきます。解決方法が分かり次第追記いたします。

これで、TensorFlowの実行環境が完成しました。

# エディタを用意する
TensorFlowの実行環境が完成しましたが、プログラムを作成するためにはエディタが必要です。エディタに関してはお好きなものが良いかと思います。また、統合開発環境(IDE)を利用しても便利でよいかと思います。私自身、[PyCharm](https://www.jetbrains.com/pycharm/)をいつも利用しております。
ここでは、Atomのインストールのみご紹介致します。
以下のURLよりインストーラをダウンロードします。
https://atom.io/
ダウンロードが完了したら、インストールウィザードに従って簡単にインストールできます。
デフォルトの設定のままインストールするだけで、色々と使えるようになっておりますので、非常に便利です。
また、今回は紹介しておりませんが、JupyterNotebookを利用しても良いかもしれません。

# まとめ
今回は、PythonおよびTensorFlowの実行環境についてご説明致しました。
最後に、エディタのインストールについても少し触れましたが、使いやすいものが一番良いかと思います。
その他ご不明な点やご意見等ございましたら、お気軽にコメントなどでご連絡お願い致します。

# 参照サイト
TensorFlow: https://www.tensorflow.org/
Anaconda: https://www.continuum.io/
Atomエディタ: https://atom.io
WindowsでTensorFlow r1.0をインストールした場合に発生するエラーに関して:
https://github.com/tensorflow/tensorflow/issues/7500