そろそろ、TensorFlowデビューだ!!

  • #技術ブログ 

こんにちは、やっと梅雨入りしたようですね。蒸し暑くて、電車通勤がちょっとキツイうえピーです。

早速、今日のお題ですが、
IP-PBXいじったり、データ分析してみたり、お前の軸はどこなんだー!!
と言われそうですが、今週はTensorFlowにしようと思います。

まず、前置きになりますが、今まで私が書いてきたブログ、軸はないようで実はあります。
弊社の扱っている音声データの幅を広げたいという思いの元、まずは流行りの音声認識でしょ!
と、GoogleのCloud Speech APIや、MicrosoftのBing Speech APIを検証し始めたんですね。
ところが、やはり思ったような認識結果にはならない。
そこで、もう少しコアな部分「Deep Learning」を勉強してみようと、O’Reillyの「ゼロから作るDeep Learning」を読み始めました。
そこで理解したのが、結局のところ、よりよい結果を求めるには大量のデータを集めかつ、それをどう機械学習させるかが肝。
要するに、Deep Learnigのモデルは、高名な技術者が公開してくれるので、僕みたいなひよっこは、学習データを集めて、入力と出力を上手くチューニングできればなんとかなるわけです。
※微分、行列計算の基礎知識は必要ですが、、、。

長くなりましたが、なぜデータ分析に力を入れ始めたかといえば、Deep Learningのよりよい入力データの模索、そして、今回Deep LearningのフレームワークとしてTensorFlowなわけです。

さて、本題に入る前に1点だけ、皆さまに提案があります。
もし、TensorFlowに興味あって、初めてみようと思っているなら、まずは「ゼロから作るDeep Learning」をご一読してからがお勧めです。

理由はシンプル、TensorFlowは「計算グラフ」で設計されたモデルを実装するために作られているから。
この計算グラフに章を割いてくれているのでお勧めなんです。
変数を定義しているだけなのに、こんなプログラム書くのなんでなん?って思いません?
わざわざ、tf.placeholder関数に入力変数を設定するのって冗長な気がするんだよね~なんて。
x = tf.placeholder(tf.float32, [None, 784], name=”x-input”)
y = tf.placeholder(tf.float32, [None, 10], name=”y-input”)

とか、モデル構築なるプログラムを書いた後に、実行のプログラムを書く意味って?などなど。
この答えが「計算グラフ」なんです。
なので、是非、「ゼロから作るDeep Learning」読んでみて下さいませ。

では、私のTensorFlow環境のご紹介とインストール手順及び、記念すべきTensorFlow第一作を公開して今回のブログを締めようと思います。
【私のTensorFlow環境】
仮想基盤:Microsoft Azure Virtual Machines
仮想環境のベース:Data Science Virtual Machine for Windows
スペック:下記 + GPU6コア

【インストール手順】
上記の環境だとData Science Virtual Machine for WindowsにAnacondaが入っているので、それをベースにインストールしました。
※ポイントは、Anacondaの仮想環境として、python3.5を作る必要があることです。
C:> conda create -n py3.5 python=3.5
C:> activate py3.5
(py3.5)C:> pip install –ignore-installed –upgrade https://storage.googleapis.com/tensorflow/windows/cpu/tensorflow-1.2.0-cp35-cp35m-win_amd64.whl
※1行です。
(py3.5)C:> pip install –ignore-installed –upgrade https://storage.googleapis.com/tensorflow/windows/gpu/tensorflow_gpu-1.2.0-cp35-cp35m-win_amd64.whl
※1行です。
参考サイト

【記念すべきTensorFlow第一作】
TensorBoardも実装していますので少しややこしく見えるかもです。
はじめてのTensorBoard