views4GCPのストレージサービスについてまとめてみた。Exp:76990---ただいま鋭意作成中です---TweetShareHatena注意この記事は2016年5月17日に更新されたもので、内容が古い可能性がありますのでご注意ください。コンピュータ囲碁プログラム「AlphaGo」が韓国のプロ棋士に4勝1敗で勝ち越したことで、最近ではよく「機械学習」という言葉を耳にする機会が増えたように思えます。そのせいか、私自身も「機械学習」には少なからず興味が湧いている今日このごろ。大学や研究機関でしっかりと学んだ人がやるモノという印象があり、専門的な知識もない文系プログラマーな私には最初の一歩がどうしても踏み出せませんでした。この「TensorFlowによる機械学習解説」シリーズでは、そんな最初の一歩を踏み出せない人のために、機械学習をやったとこのない人でも理解出来る内容で、TensorFlowのインストールから公開されているチュートリアルを実践、勉強しつつ解説をできる限りしていきたいと思います。第一回目である今回は、TensorFlowのインストールから簡単な動作確認までを解説していきたいと思います。データフローグラフって何?まとめTensorFlowって何?簡単に言うと、Googleがオープンソースとして公開した機械学習のライブラリです。冒頭で書いた「AlphaGo」の学習にもこの「TensorFlow」が使われていますが、他にもGoogleフォトなどのGoogleのサービスでも使われているライブラリです。2016/05/17時点の最新バージョンは0.8となっています。X、開発言語はC++とPythonの2つだけです。「TensorFlow解説」シリーズでは、OSはUbuntu14.04、開発言語はPythonの環境を前提に説明していきます。Engine(以降GCEと呼称)上に用意しました。GCEのVMインスタンスのスペックは下記の通りです。read/writeまた、インストールの手順は基本的には下記ドキュメントの手順に従って行ないます。https://www.tensorflow.org/versions/r0.8/get_started/os_setup.html#download-and-setup※インストールの手順はOS毎に若干違うかと思いますので、適宜自分の環境に合うように読み替えて下さい。実行環境を整えるまずは、ライブラリをインストールする前にTensorFlowの実行環境を整えたいと思います。作業は、homeディレクトリ直下のユーザディレクトリにて行ないます。Pythonのバージョン確認TensorFlowが使えるPythonのバージョンは2.7系か3.3系以上なので、下記コマンドを実行してPythonのバージョンを確認しましょう。-VPythonが未インストールだったり、2.7系か3.3系以上でない場合はインストールして下さい。pipとvirtualenvのインストールPythonを使っている人にはお馴染みの2つのパッケージをインストールします。下記コマンドを実行すると、pip(*1)とvirtualenv(*2)の両方のインストールが実行できます。pipはPythonのソフトウェアパッケージを管理してくれるパッケージです。virtualenvはPythonの仮想環境を作ることができるパッケージです。virtualenvの仮想環境を作るpipとvirtualenvのインストールが完了したら次はvirtualenvの環境を作ります。下記のコマンドを実行します。~/tensorflow実行後、「ls」コマンドを実行すると、「tensorflow」というディレクトリが作成されているかと思います。これで仮想環境が作成できました。今後はこの「tensorflow」ディレクトリ配下の仮想環境で作業を行ないます。仮想環境を読み込む次は下記コマンドで、仮想環境を読み込みます。~/tensorflow/bin/activate仮想環境が正常に読み込めたら、下記のように仮想環境作成時に指定したディレクトリ名が括弧に入って表示されるかと思います。コード(tensorflow)yasue@tensorflow-report:~$これでTensorFlowを最低限動かすのに必要な仮想環境の整備はこれで整いました。次はいよいよ仮想環境に対するTensorFlowのインストールです。仮想環境へのTensorFlowのインストールTensorFlowのインストールは簡単です。TensorFlowはpipでインストールできるようにwheelファイル(*3)が公式で提供されています。wheelファイルとはPythonのパッケージング形式でビルドされたファイルのことです。Pythonのライブラリやパッケージの配布によく使われています。最新のTensorFlowのwheelファイルの指定方法は公式ページにありますので、確認して下さい。https://www.tensorflow.org/versions/master/get_started/os_setup.html#pip-installationでは、TensorFlowをインストールします。https://storage.googleapis.com/tensorflow/linux/cpu/tensorflow-0.8.0-cp27-none-linux_x86_64.whl実行すると、TensorFlowと依存関係のあるライブラリも一緒にインストールしてくれます。TensorFlowにはGPU版とCPU版の2種類があるのですが、GCEのVMインスタンスではGPUが使用できないためCPU版をインストールしました。ここまででインストールは完了です。TensorFlow!」さて、インストールが完了したら、次はPythonからTensorFlowが使用できるかどうか確認しましょう。Pythonをインタプリタで実行し、下記のコードを実行してみましょう。TensorFlowのライブラリをインポートします。TensorFlow!」と表示できたでしょうか?エラーなく表示されたなら、動作確認は問題ないですね。ここで少しコードの解説をやってみたいと思います。※解説に誤りや補足事項がありましたら、指摘していただければ幸いです。(1)では、「tf.constant()」を使い、Tensor型のオブジェクトを作っています。Tensor型というのはあまり聞き慣れない型ですが、行列のような多次元配列を扱うことができる型です。TensorFlow!」という文字列なので、余計に行列を扱っているという意識が薄いかもしれませんね。TensorFlow!」という文字列ではなく、Tensor型のオブジェクトの情報が出力されます。「Const」となっているので、『定数』として定義されている「shape」の値が空なので、0次元である「dtype」が「string」なので、値のデータ型が文字列であるということが分かります。(2)では、「tf.Session()」でSessionオブジェクトを作成し、「print(sess.run(hello))」でSessionにTensor型の変数であるhelloを渡し、計算を実行して、「print()」で文字列のまま出力までを行なっています。次は、足し算をしてみましょう。42みなさんも42となったでしょうか?これで動作確認は終了です。データフローグラフって何?動作確認も終わりましたので、少しここでTensorFlowの計算処理について説明したいと思います。TensorFlowの計算処理は「データフローグラフ」で表されています。「データフローグラフ」と言われても、正直あまり聞き慣れない言葉ですね。公式ページの説明には、図付きで「ノードとエッジの有向グラフと数学的な計算を表現したグラフ」と英語で書いてありますが、この説明だけではイマイチよく分かりませんね......。調べて見ましたが、データフローグラフは図1のようなグラフのことのようです。図1を見るとデータフローグラフはノードとノードをエッジで繋げたグラフであることが分かります。データは、エッジに従ってノードに受け渡されて計算処理が行われるようです。具体的に今回の動作確認のコードでノードに該当するものは、「hello」がノードになります。TensorFlowではノードのことをop(Operationの略)と呼んでいるようです。データフローグラフについてはなんとなくでもイメージが湧いたかと思います。以上のことを踏まえまして、TensorFlowの計算処理は下記のような2段階に分けることができると言えます。データフローグラフの構築する。Sessionにデータフローグラフを渡し、実際に計算を実行する。まとめTensorFlowのインストールから動作確認までは無事できたでしょうか?TensorFlowのチュートリアルを通して、数学や機械学習そのもののコアな部分の理解も深められるような記事にしていきたいと思いますので、暖かく読んでいただければと思います。ご意見や指摘事項、誤りがありましたら、コメントにて教えていだければ幸いです。次回はMNISTのチュートリアルを紹介しますので、お楽しみ下さい。