Successfully reported this slideshow.
We use your LinkedIn profile and activity data to personalize ads and to show you more relevant ads. You can change your ad preferences anytime.

TensorFlow 3分紹介 with 速攻 windows 環境構築

1,220 views

Published on

AITC オープンラボ 第5回機械学習勉強会 「TensorFlow で始めるディープラーニング~入門編」

TensorFlow 3分間紹介と、Windows 8.1 以前に TensorFlow を構築して使い始められるようになるまでの簡単なセットアップ手順をご紹介しています。

Published in: Software

TensorFlow 3分紹介 with 速攻 windows 環境構築

  1. 1. 2017年1月期 AITCオープンラボ 第5回機械学習勉強会 「TensorFlowで始めるディープラーニング~入門編」 2017年1月26日 荒井 美千子 0
  2. 2.  Googleの “Machine Intelligence” ライブラリ  ニューラルネット, 深層学習など 勾配アルゴリズムが守備範囲  Open Source  Python  機械学習基盤 DistBelief の後継 1 Gmail とか Google猫とか
  3. 3. TensorFlow™ is an open source software library for numerical computation using data flow graphs. Nodes in the graph represent mathematical operations, while the graph edges represent the multidimensional data arrays (tensors) communicated between them. TensorFlow™ はOSSのデータフローグラフ数値計算ライブラ リです。グラフのノード(節点)は数学演算をグラフのエッジ(枝) はノード間の伝達を表す多次元データ配列(テンソル)を意味し ます。 2
  4. 4. TensorFlow™ is an open source software library for numerical computation using data flow graphs. Nodes in the graph represent mathematical operations, while the graph edges represent the multidimensional data arrays (tensors) communicated between them. TensorFlow™ はOSSのデータフローグラフ数値計算ライブラ リです。グラフのノード(節点)は数学演算をグラフのエッジ(枝) はノード間の伝達を表す多次元データ配列(テンソル)を意味し ます。 3
  5. 5. グラフ(英: Graph)とは、ノード(頂点)群とノード間の連結関係 を表すエッジ(枝)群で構成される抽象データ型、and・orその 実装である具象データ型である。グラフ理論によるグラフの実 装であり、同理論にもとづく豊富なアルゴリズムの基盤である。 6個の頂点と7本の枝からなる ラベル付きグラフ グラフ = 点を線でつなげたもの 4
  6. 6. テンソル(英: tensor, 独: Tensor)とは、線形的な量または線 形的な幾何概念を一般化したもので、基底を選べば、多次元の 配列として表現できるようなものである。 《途中省略》 古典的なアプローチではテンソルは多次元の配列で、階数0の スカラーや階数1のベクトル、階数2の行列などの階数nへの一 般化を与えているものと見なされる。テンソルの「成分」は配列 の要素の値によって与えられることになる。 ひとまず “テンソル=行列” と考えればいいかな 5
  7. 7. ニューラルネットワーク(神経回路網、英: neural network, NN)は、脳機能に見られるいくつかの特性を計算機上のシミュ レーションによって表現することを目指した数学モデルである。 6 ニューラルネットは “グラフ” で表現され、 つながり具合は “行列(テンソル)”で表現できる
  8. 8. TensorFlow って ニューラルネット とか Deep Learning とかに 使えるんだね? 7
  9. 9. さまざまな環境にインストールしてみる 8
  10. 10.  基本はLinuxで動く ◦ バイナリパッケージを使う ◦ ソースからビルドする 仮想環境を利用すれば Linux 以外でも動かせる  Windows  Mac OS X  もちろんPublic Cloudで動かすのもアリ 9 最近は Windows版も あるらしい
  11. 11.  とにかく素早く簡単に TensorFlow を拝みたい人向け ◦ Old Type Windows or Mac + VirtualBox + Docker Toolbox この資料の続きをご覧ください ◦ New Type Windows or Mac + Docker for Windows or Mac 10
  12. 12.  Docker 挟むのは面倒な人向け ◦ Windows + VirtualBox + Anaconda  「いきなり Windows」を試したい人向け ◦ Windows + Anaconda http://www.slideshare.net/HirooInamura/windowsvirtualboxtensorflow  本格的に CPU/GPU をぶん回したい人向け ◦ Azure + Docker 11
  13. 13. Old Type: VirtualBox + Docker Toolbox 12
  14. 14. TensorFlowを動かすには、ソースからコンパイルするより、 Docker上で動作するバージョンがお手軽。 WindowsやMacの Docker には2種類あるので注意。  Docker Toolbox ◦ ひとつ前の古いバージョン ◦ 古めの OS (Windows 8以前とか)で動作する ◦ Docker for Windows, Docker for Mac に比べて性能は劣るハズ  Docker for Windows, Docker for Mac ◦ 2016/12/10時点の最新版 ◦ 新しめの OS (Windows 10とか)上でしか動作しない 13 こちらを 紹介
  15. 15.  Docker Toolbox を利用可能するには; • Windows 7以降 ※ Windows 10 なら Docker for Windows へ • 64bit OS • Virtualization が有効 14
  16. 16. Windows + VirtualBox + Docker ToolBox 簡単 3 ステップ セットアップ 1. Docker Toolbox for windows をインストール 2. Docker にログインし、TensorFlow イメージをロード 3. TensorFlow につないで使う 15
  17. 17. 16 Windows (os Mac ) 物理サーバ (ベアメタル) Docker Hub Repository Container Image Container Image
  18. 18. 17 Linux or Mac OS X or Windows 物理サーバ (ベアメタル) Docker Engine Docker Compose Docker Machine Docker Client Kitematic Docker Quickstart Terminal VirtualBox Docker Hub Repository Container Image Container Image Linux ※ Docker Toolbox インストーラにVirtualBox も含まれている
  19. 19. https://docs.docker.com/toolbox/toolbox_install_windows/ を 参考にして以下の操作を行う。 1. https://www.docker.com/products/docker-toolbox へ。 2. Download ボタンをクリックしダウンロード。 18 v1.12.6 は203MB!
  20. 20. 3. ダウンロードした DockerToolbox.exe を右クリックし、 「管理者として実行」を選択。 4. ウィザードに従って Docker Toolboxをインストールする。 19
  21. 21. 1. Docker QuickStart Terminal を 「管理者として実行」する。 端末が開き、メッセージが表示される。 2. マスコットのMoby DockとIPアドレスが表示され起動完了。 20 “管理者として 実行”マーク DockerにアクセスするためのIP ここでは 192.168.99.100
  22. 22. 3. 以下のコマンドを実行し、“Hello from Docker!” が表示 されれば成功。 docker run –name hello hello-world 21 $ docker run --name hello hello-world Unable to find image 'hello-world:latest' locally latest: Pulling from library/hello-world 78445dd45222: Pull complete Digest: sha256:c5515758d4c5e1e838e9cd307f6c6a0d620b5e07e6f927b07d05f6d12a1ac8d7 Status: Downloaded newer image for hello-world:latest Hello from Docker! This message shows that your installation appears to be working correctly. ...
  23. 23. 22 Linux or Mac OS X or Windows 物理サーバ (ベアメタル) Docker Engine Docker Compose Docker Machine Docker Client Kitematic Docker Quickstart Terminal Container Jupyter TensorFlow Application VirtualBox Docker Hub Repository Container Image Container Image download Linux
  24. 24. 1. 以下のコマンドを実行し、TensorFlowを起動。 初回にコンテナイメージをDocker Hubからロードする。 docker run -d -p 8888:8888 -p 6006:6006 –v //c/Users/user/tensorflow/tf_dev:/notebooks/tf_dev --name tensorflow_jupyter gcr.io/tensorflow/tensorflow 23 コンテナイメージをロード中
  25. 25. 2. 以下のコマンドでTensorFlow が実行中になっているか 確認できる docker ps -a 24 名前が “tensorflow_jupyter” のプロセス $ docker ps -a CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES ea04c8806c6f gcr.io/tensorflow/tensorflow "/run_jupyter.sh" 9 minutes ago Up 9 minutes 0.0.0.0:6006->6006/tcp, 0.0.0.0:8888->8888/tcp tensorflow_jupyter
  26. 26. 25 Linux or Mac OS X or Windows 物理サーバ (ベアメタル) Docker Engine Container Jupyter TensorFlow Application VirtualBox Docker Hub Repository Container Image Container Image Linux Access
  27. 27. 1. ブラウザでアクセス http://192.168.99.100:8888 192.168.99.100 Docker世界に割り当てられたIPアドレス 8888 TensorFlow (Jupyter) のポート番号 Jupyter のページが表示されたら成功 26
  28. 28. 27  パスワードを聞かれたら、Docker QuickStart Terminal で以下のコマンドを実行し、表示されたトークンをパスワード 欄に入力してログイン。 docker exec tensorflow_jupyter jupyter notebook list $ docker exec tensorflow_jupyter jupyter notebook list Currently running servers: http://localhost:8888/?token=bf9740965f4a44f8469ad6fc1c74bfe491181bda3da872ec :: /notebooks トークン文字列をブラウザのパスワード欄に入力
  29. 29. これで インストールは完了! 28
  30. 30. docker run -d -p 8888:8888 -p 6006:6006 –v //c/Users/user/tensorflow/tf_dev:/notebooks/tf_dev --name tensorflow_jupyter gcr.io/tensorflow/tensorflow docker run [options] image [command ] [args...] docker run docker世界でアプリを起動 -d デーモンプロセスとして起動する -p post1:port2 docker世界のポート port1 を dockerの外のポート port2 に接続。 8888 はTensorFlow (Jupyter)の、6006はTensorBoardのポート。 -v path1:path2 docker世界のストレージのパス path2 をdockerの外のストレージ path1 に接続。 Windows では “C:¥Users¥ユーザのログイン名” 以下のディレクトリを指定すること --name text アプリケーションを識別するための名前 の指定 image アプリケーションを保存しているレポジトリの場所 ここでは ”gcr.io/tensorflow/tensorflow” をロードする 参考: https://docs.docker.com/engine/reference/commandline/run/ 29
  31. 31. docker ps -a docker ps [options] docker ps docker世界のプロセス状態を表示 -a すべてのプロセスを表示する 30 docker exec tensorflow_jupyter jupyter notebook list docker exec [options] container command [arg...] docker exec コンテナの中でコマンドを実行する container コンテナ名。ここでは、tensorflow_jupyter command 実行するコマンドでここでは jupyter。 ”jupyter notebook list” をコンテナ内で実行する。

×