WindowsでMinicondaを使ってTensorFlow環境構築(2018年)

Windows8.1にMinicondaで仮想環境を作成してTensorFlow1.7をインストールする手順です。(Minicondaでなく)Anacondaを使う場合は[「TensorFlowをWindowsにインストール Python初心者でも簡単だった件」](https://qiita.com/FukuharaYohei/items/d8f82c827e0bae70096a)を参照ください。Anacondaの方がAnaconda Navigatorを使えるので初心者には優しいですが、使わないパッケージもインストールされて無駄も多いです。Minicondaで十分ではないかと思っています。
Minicondaのインストールは記事[「WindowsにMinicondaインストール(2018年)」](https://qiita.com/FukuharaYohei/items/cf72049b2a97687037bb)を参照ください。
UbuntuでのTensorFlow環境構築は記事[「WSLのUbuntuにTensorFlowをインストール」](https://qiita.com/FukuharaYohei/items/f6edc0a25c45af996f90)を参照ください。

あと、[Google Colaboratory](https://colab.research.google.com/)というクラウドサービスもおすすめです。ローカル環境をセットアップせずにTensorFlowを利用できるのでAnacondaやMinicondaより簡単です。使い方は記事[「Google Colaboratory概要と使用手順(TensorFlowも使える)」](https://qiita.com/FukuharaYohei/items/18bc4465923bdda81826)を参照ください。

#環境
|種類|バージョン|内容|
|:--|:--|:--|
|OS|Windows8 64bit |自宅環境なのでProfessionalでもないです|
|CPU|NVDIA GPUなし|NVDIAのGPUだと"TensorFlow with GPU support"が使えます(ただ、インストール時に手間が少し増えそうです)。|
|Miniconda|conda 4.4.10 |Minicondaですが、基本的にAnacondaと変わりません|
|TensorFlow| TensorFlow 1.7|TensorFlow with CPU support onlyです。**当ブログ内容は"TensorFlow with GPU support"に対応していない**ので注意ください|

※pipは"Pip Installs Packages" または "Pip Installs Python"のことで、Pythonで書かれたパッケージソフトウェアをインストール・管理するためのパッケージ管理システム。

#手順
#1. 仮想環境作成
まずはMinicondaで仮想環境を作成します。

Anaconda Promptを起動(Minicondaでもこの名前らしい)。[公式サイト](https://www.tensorflow.org/install/install_windows#installing_with_native_pip)でTensorFlowがPython3.6をサポートしていることを確認します("native pip"を使ったインストールの章に書いていますが、Anacondaでも同じです)。python3.6の環境名"tensorflow17"という仮想環境を作成します。

```
conda create --name tensorflow17 python=3.6
```

途中で追加パッケージインストールを聞かれるので"Y"(Yes)と答えます。
![10.CreateVirtualEnv01.JPG](https://qiita-image-store.s3.amazonaws.com/0/134273/f41fbc8e-4a13-a253-757f-bd2450902b5f.jpeg)

仮想環境が作成されました。
![10.CreateVirtualEnv02.JPG](https://qiita-image-store.s3.amazonaws.com/0/134273/b9213649-2f8d-5e92-3ffc-8d5649e9548f.jpeg)

#2. 仮想環境起動
下記コマンドを打って、先ほど作成した仮想環境を起動します("tensorflow17"部分は仮想環境名)。

```
activate tensorflow17
```

![20.RunVirtualEnvironment01.JPG](https://qiita-image-store.s3.amazonaws.com/0/134273/45eea41e-fe30-b6c1-a371-3ba081b2b53e.jpeg)


#3. TensorFlowインストール
2018/4/6時点で最新のTensorFlow1.7をインストールします。公式ガイドと反するのですが、["conda install"を使うと実行時の処理が速くなるらしい](https://www.anaconda.com/blog/developer-blog/tensorflow-in-anaconda/)です。[condaとpip：混ぜるな危険](http://onoz000.hatenablog.com/entry/2018/02/11/142347)のような情報もあり、"conda install"の方がいいのだろうか？

```
pip install --ignore-installed --upgrade tensorflow 
```

![30.InstallTensorFlow01.JPG](https://qiita-image-store.s3.amazonaws.com/0/134273/43ae446f-6c9c-a2bb-f70e-d71d62f4b5fc.jpeg)

#4. TensorFlowインストール結果確認

インストール結果の確認です。[公式ガイド](https://www.tensorflow.org/install/install_windows#validate_your_installation)どおりの確認方法です。

Pythonを起動します(先程からの流れでやっています)。

```none
python
```

あとはそのままHello Worldコマンド実行です。

```none
import tensorflow as tf
hello = tf.constant('Hello, TensorFlow!')
sess = tf.Session()
print(sess.run(hello))
```

ちなみにTensorFlow2.0では以下のコマンドです(コメントにて指摘いただきました)。

```none
import tensorflow as tf
msg = tf.constant('TensorFlow 2.0 Hello World')
tf.print(msg)
```

![40.ValidateTensorFlow.JPG](https://qiita-image-store.s3.amazonaws.com/0/134273/438b1a44-8ac8-c22b-3d25-5dab85c30595.jpeg)

成功しました！エラー全然起きなかったです。
Pythonシェルを終了。

```none
exit()
```

最後に仮想環境を終了してAnaconda Promptを閉じます。

```none
deactivate
exit
```

#参考リンク
> - [【入門者向け解説】TensorFlow基本構文とコンセプト](http://qiita.com/FukuharaYohei/items/0825c3518d8596c09396)
> - [【入門者向け解説】TensorFlowチュートリアルMNIST(初心者向け)](http://qiita.com/FukuharaYohei/items/10b89275efda2a22e9c5)
> - [TensorFlowチュートリアルMNIST(初心者向け)をTensorBoardで見える化](http://qiita.com/FukuharaYohei/items/2834cc054a8b8884e150)
> - [TensorFlow APIメモ](http://qiita.com/FukuharaYohei/items/f9bb9a0afd47be9ecef8)
> - [【TensorBoard入門】TensorFlow処理を見える化して理解を深める](http://qiita.com/FukuharaYohei/items/7ea120005f73cf882146)
> - [【TensorBoard入門:image編】TensorFlow画像処理を見える化して理解を深める](http://qiita.com/FukuharaYohei/items/fae6896e041235033454)
> - [【TensorBoard入門:Projector編】TensorFlow処理をかっこよく見える化](https://qiita.com/FukuharaYohei/items/70f702ee85e23b5b1e26)
> - [【入門者向け解説】TensorFlowチュートリアルDeep MNIST](http://qiita.com/FukuharaYohei/items/0aef74a0411273705512)
> - [TensorFlow理解のために柏木由紀さん顔特徴を調べてみた【前編】](http://qiita.com/FukuharaYohei/items/c3fb29fc8b42e0dfad0f)