TensorFlowでDeepLearningを学習する ~インストール~

人工知能、話題ですね。

碁や将棋でコンピューターが名人を打ち負かしたとか、車が勝手に自分で運転するだとか…すごいです。まさにSFの世界が現実になろうとしています。

私もうまいこと人工知能を作ることができれば

  • 私の代わりに仕事をやってもらったり
  • 株やFXで稼いでくれたり
  • 疲れた時にはやさしい言葉で癒してくれたり

ってことですよね?

これは勉強しない訳にはいかないでしょう。

ディープラーニングというのがカギのようですが、どうやらGoogleが開発したTensorFlowなるものを使えば人工知能を作れる?

TensorFlowとは

お約束ですがTensorFlowとは何でしょう?

GoogleのTensorFlowのサイトを見てみましょう。

TensorFlow™ is an open source software library for numerical computation using data flow graphs.

TensorFlow™は、データフローグラフを使用した数値計算用のオープンソースソフトウェアライブラリです。

By Google翻訳

どうやらソフトウェアのライブラリらしいです。でもよく聞く機械学習って言葉が出てきませんね。

TensorFlow was originally developed by researchers and engineers working on the Google Brain Team within Google’s Machine Intelligence research organization for the purposes of conducting machine learning and deep neural networks research, but the system is general enough to be applicable in a wide variety of other domains as well.

TensorFlowはもともと、機械学習やディープニューラルネットワーク研究を行う目的でGoogleのMachine Intelligence研究機関のGoogle Brain Teamの研究者や技術者によって開発されましたが、このシステムは他のさまざまな分野で適用できるほど十分に汎用的になりました。

By Google翻訳 + 私がちょっと修正

もともとは機械学習用に作られたけど今では他のことにも十分使えるよって、言ってる感じですが今回は機械学習が目的なので他の分野については忘れます。

いろんなサイトを見てるとTensorFlowとは”Googleが開発した機械学習用ライブラリで主にPythonから利用されます”といった感じでしょうか。

つまりこれを使えば機械学習が簡単にできる、つまり人工知能が作れるということ?

まずはインストールしないと始まりません。現在最新の1.2をインストールします。

インストール

公式のインストールドキュメントに従って進めていきます。

Pythonから利用するためまずはPythonをインストールします。TensorflowはPythonの3.5.xにしか対応してません。現在最新の3.6には対応してないので古いバージョンを使用する必要があります。

Windows

まずPythonですが私はAnacondaというパッケージを使いました。

これはPythonと主にデータサイエンスに便利なライブラリをパッケージ化して配布されているものです。

なおTensorFlowはAnacondaを正式にはサポートしてないそうですが公式のドキュメントにもインストール方法が記述してあり問題なく動いてます。

Anacondaでは環境を分離できるそうでTensorFlow用の環境を作成します。

コマンドプロンプトを管理者モードで開き、以下を入力します。

C:> conda create -n tensorflow python=3.5

Anacondaの最新版はPythonのバージョンが3.6の為、3.5にダウングレードしてます。

次に作成したTensorFlow用の環境に切り替えます。

C:> activate tensorflow
(tensorflow)C:>

切り替わるとプロンプトが変わります。

次にTensorFlowをインストールします。

TensorFlowにはCPU版とGPU版があります。GPU版はNVIDIAのグラフィックボードを利用してかなり高速に計算ができるようになります。もちろんNVIDIAのグラフィックボードが載ってなければ利用できません。また事前に2つほどNVIDIAのソフトをインストールしておく必要があります。

※cuDNNは注意点が2つあって

  • 最新版ではないv5.1をインストールする必要がある
  • ダウンロードするにはNVIDIA DEVELOPPERに登録する必要がある(無料)

CPU版

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

GPU版

(tensorflow)C:> pip install --ignore-installed --upgrade https://storage.googleapis.com/tensorflow/windows/gpu/tensorflow_gpu-1.2.1-cp35-cp35m-win_amd64.whl

これでインストールは完了です。TensorFlowがWindowsに対応してからはかなり敷居が下がったと思います。

動作確認

TensorFlow用環境をActivateした後にPythonを起動します。
(tensorflow)C:> python

以下を1行ずつ入力してエンターキーを押します。

最後の行を入力してエンターキーを押すと

Hello, TensorFlow!

と表示されればとりあえずインストールはオーケーです。

なおGPU版の場合sess=tf.Session()を実行すると以下のWarningが表示されますが無視してかまいません。

2017-08-03 16:50:11.945672: W c:\tf_jenkins\home\workspace\release-win\m\windows-gpu\py\35\tensorflow\core\platform\cpu_feature_guard.cc:45] The TensorFlow library wasn't compiled to use SSE instructions, but these are available on your machine and could speed up CPU computations.
2017-08-03 16:50:11.945773: W c:\tf_jenkins\home\workspace\release-win\m\windows-gpu\py\35\tensorflow\core\platform\cpu_feature_guard.cc:45] The TensorFlow library wasn't compiled to use SSE2 instructions, but these are available on your machine and could speed up CPU computations.
2017-08-03 16:50:11.946046: W c:\tf_jenkins\home\workspace\release-win\m\windows-gpu\py\35\tensorflow\core\platform\cpu_feature_guard.cc:45] The TensorFlow library wasn't compiled to use SSE3 instructions, but these are available on your machine and could speed up CPU computations.
2017-08-03 16:50:11.946365: W c:\tf_jenkins\home\workspace\release-win\m\windows-gpu\py\35\tensorflow\core\platform\cpu_feature_guard.cc:45] The TensorFlow library wasn't compiled to use SSE4.1 instructions, but these are available on your machine and could speed up CPU computations.
2017-08-03 16:50:11.946697: W c:\tf_jenkins\home\workspace\release-win\m\windows-gpu\py\35\tensorflow\core\platform\cpu_feature_guard.cc:45] The TensorFlow library wasn't compiled to use SSE4.2 instructions, but these are available on your machine and could speed up CPU computations.
2017-08-03 16:50:11.947032: W c:\tf_jenkins\home\workspace\release-win\m\windows-gpu\py\35\tensorflow\core\platform\cpu_feature_guard.cc:45] The TensorFlow library wasn't compiled to use AVX instructions, but these are available on your machine and could speed up CPU computations.
2017-08-03 16:50:11.947311: W c:\tf_jenkins\home\workspace\release-win\m\windows-gpu\py\35\tensorflow\core\platform\cpu_feature_guard.cc:45] The TensorFlow library wasn't compiled to use AVX2 instructions, but these are available on your machine and could speed up CPU computations.
2017-08-03 16:50:11.947579: W c:\tf_jenkins\home\workspace\release-win\m\windows-gpu\py\35\tensorflow\core\platform\cpu_feature_guard.cc:45] The TensorFlow library wasn't compiled to use FMA instructions, but these are available on your machine and could speed up CPU computations.
2017-08-03 16:50:12.336791: I c:\tf_jenkins\home\workspace\release-win\m\windows-gpu\py\35\tensorflow\core\common_runtime\gpu\gpu_device.cc:940] Found device 0 with properties: