はじめてのテンサーフローワークショップに参加しました

#はじめてのテンサーフローワークショップに参加しました

Workshop: Getting Started・ワークショップ：はじめて­のテンサーフロー
http://www.meetup.com/TensorFlow-Tokyo/events/227846862/?eventId=227846862

こんにちは。2016年こそはディープラーニングを使いこなそう！という意気込みの谷岡です。最近巷で噂になってるTensorFlowの勉強会（ワークショップ）が六本木ヒルズで開かれると聞いて、意気込んで参加しました。

000. みんな英語で話してる
----

TensorFlow Tokyo
http://www.meetup.com/TensorFlow-Tokyo/

MeetupでDescriptionを読んでみると気がつきますが、このワークショップの主催者、参加者のほとんどが外国人の方でした。そのため、みんな英語で会話していて、ぼくみたいな英語べたでソーシャルじゃないエンジニアは、アウェー感を感じてしまいました。（でもビールも飲めたし、なんとなく楽しかったですよ。）

001. 公式ページに行く
----

そんなこんなで、20時ごろからワークショップは始まりました。まずはTensorFlowの公式ページにアクセスします。

TensorFlow
https://www.tensorflow.org/

![image](https://qiita-image-store.s3.amazonaws.com/0/47058/11aa99db-59b5-3ea6-75ba-4456d19c5ec7.png)

そして[GET STARTED]ボタンを何も読まずプッシュ！

010. インストールする
----

Pip Installation
https://www.tensorflow.org/versions/master/get_started/os_setup.html#pip-installation

![image](https://qiita-image-store.s3.amazonaws.com/0/47058/397c9da0-9afa-3f3e-7b92-f2da7340e9fc.png)


いろんなドキュメントが用意されているので、詳しく知りたい人は読みましょう。
今日のぼくの目的は、まずTensorFlowが動くとこまでなので、すっとばして Pip Installation へ進みます。

ぼくのマシンはMacBook Airなので、以下の流れでインストールします。

    # Mac OS X
    $ sudo easy_install pip

    $ sudo easy_install --upgrade six
    $ sudo pip install --upgrade https://storage.googleapis.com/tensorflow/mac/tensorflow-0.6.0-py2-none-any.whl

    $ sudo pip install --upgrade virtualenv
    
    $ virtualenv --system-site-packages ~/tensorflow

    $ source ~/tensorflow/bin/activate  # If using bash
    # Mac OS X, CPU only:
    (tensorflow)$ pip install --upgrade https://storage.googleapis.com/tensorflow/mac/tensorflow-0.6.0-py2-none-any.whl

これでTensorFlowがコマンドラインモードで起動できました。停止したい場合は、deactivateします。

    (tensorflow)$ deactivate

おお、なんかできてる気がする。

011. コマンドラインで動かしてみる
----

pythonのコマンドラインで動かしてみます。

    $ python
    ...
    >>> import tensorflow as tf
    >>> hello = tf.constant('Hello, TensorFlow!')
    >>> sess = tf.Session()
    >>> print(sess.run(hello))
    Hello, TensorFlow!
    >>> a = tf.constant(10)
    >>> b = tf.constant(32)
    >>> print(sess.run(a + b))
    42
    >>>

てな感じで打ってみると、動く！

100. demo modelを動かしてみる
----

demo modelを動かしてみました。一度動かし始めると時間がかかります。会場では終わらなくて、結局家に帰って夜中になるまで動いてました。たぶん、2時間くらい？

ぼくの環境では、モデルのパスは以下でした。

    /Library/python/2.7/site-packages/tensorflow

そして、こんな感じで実行します。

    $ python -c 'import os; import inspect; import tensorflow; print(os.path.dirname(inspect.getfile(tensorflow)))'

または、こんな感じ。両方動くはず。

    $ python /Library/python/2.7/site-packages/tensorflow/models/image/mnist/convolutional.py

101. reactivekk社のデモを動かす
----

reactivekk社が公開してくれているipython notebookのデモを動かしてみます。

tensorflow-getting-started
https://github.com/reactivekk/tensorflow-getting-started

まずは任意のフォルダで、git cloneしてスクリプトをダウンロードします。

    git clone https://github.com/reactivekk/tensorflow-getting-started

次に、ipython notebookをインストールします。ipython notebookは、pythonをブラウザ上で実行して、visualな表示もできる優れものなので、是非インストールしましょう。まず必要なライブラリをインストールします。

    sudo pip install numpy matplotlib
    sudo pip install ipython

インストールできたら、ipython notebookのサーバを起動します。

    ipython notebook

自動的にブラウザが開くので、そこから先ほどgit cloneしたスクリプト"TensorFlow Mnist.ipynb"をアップロード(add)します。アップロードできたら、"TensorFlow Mnist.ipynb"をクリックしてみましょう。用意されたスクリプトが表示できたはずです。

手始めに一行目の"import tensorflow as tf"を実行してみます。ipythonでのpythonの実行方法は、「Shift+Enter」です。

    import tensorflow as tf [Shift+Enter]

これでうまくいった人はおめでとうございます。あなたは選ばれた人です。

110. 環境を更新してやりなおす
----

ここで私の環境ではいろいろエラーが出てしまいました。以下の情報を参考に、ごにょごにょしてから再度実行してみます。

はじめるiPython notebook
http://qiita.com/icoxfog417/items/175f69d06f4e590face9
Starting the ipython notebook
http://stackoverflow.com/questions/24795239/starting-the-ipython-notebook
ImportError: No module named notebook.notebookapp
http://stackoverflow.com/questions/31401890/importerror-no-module-named-notebook-notebookapp

よし、もう一度ipython notebookを起動。

    ipython notebook

そんで、ブラウザ上でtensorflowをimport。

    import tensorflow as tf [Shift+Enter]

お、エラーがなくなった！そして手書き文字認識のサンプルも動いた！やったー！

![image](https://qiita-image-store.s3.amazonaws.com/0/47058/20779286-01ae-25c6-79af-1f3666f2b2af.png)

111. おわりに
----

そんなこんなでTensorFlowはじめました。今後は、モデルの作り方や応用方法を学習していきたいと思います。TensorFlow Tokyoのみなさん、会場を貸していただいたQuelonのみなさん、デモを公開していただいたreactivekkのみなさん、どうもありがとうございました。

次のワークショップも期待しています。