31
20171月期 AITCオープンラボ 第5回機械学習勉強会 TensorFlowで始めるディープラーニング~入門編」 2017126日 荒井 美千子 0

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

Embed Size (px)

Citation preview

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

2017年1月期 AITCオープンラボ 第5回機械学習勉強会

「TensorFlowで始めるディープラーニング~入門編」

2017年1月26日 荒井 美千子

0

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

Googleの “Machine Intelligence” ライブラリ

ニューラルネット, 深層学習など 勾配アルゴリズムが守備範囲

Open Source

Python

機械学習基盤 DistBelief の後継

1

Gmail とか Google猫とか

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

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

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

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

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

グラフ(英: Graph)とは、ノード(頂点)群とノード間の連結関係

を表すエッジ(枝)群で構成される抽象データ型、and・orその

実装である具象データ型である。グラフ理論によるグラフの実

装であり、同理論にもとづく豊富なアルゴリズムの基盤である。

6個の頂点と7本の枝からなるラベル付きグラフ

グラフ = 点を線でつなげたもの

4

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

テンソル(英: tensor, 独: Tensor)とは、線形的な量または線

形的な幾何概念を一般化したもので、基底を選べば、多次元の

配列として表現できるようなものである。

《途中省略》

古典的なアプローチではテンソルは多次元の配列で、階数0の

スカラーや階数1のベクトル、階数2の行列などの階数nへの一

般化を与えているものと見なされる。テンソルの「成分」は配列

の要素の値によって与えられることになる。

ひとまず “テンソル=行列” と考えればいいかな

5

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

ニューラルネットワーク(神経回路網、英: neural network, NN)は、脳機能に見られるいくつかの特性を計算機上のシミュレーションによって表現することを目指した数学モデルである。

6

ニューラルネットは “グラフ” で表現され、 つながり具合は “行列(テンソル)”で表現できる

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

TensorFlow って

ニューラルネット とか

Deep Learning とかに

使えるんだね?

7

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

さまざまな環境にインストールしてみる

8

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

基本はLinuxで動く

◦ バイナリパッケージを使う

◦ ソースからビルドする

仮想環境を利用すれば Linux 以外でも動かせる

Windows

Mac OS X

もちろんPublic Cloudで動かすのもアリ

9

最近はWindows版もあるらしい

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

とにかく素早く簡単に TensorFlow を拝みたい人向け ◦ Old Type

Windows or Mac + VirtualBox + Docker Toolbox

この資料の続きをご覧ください

◦ New Type

Windows or Mac + Docker for Windows or Mac

10

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

Docker 挟むのは面倒な人向け

◦ Windows + VirtualBox + Anaconda

「いきなり Windows」を試したい人向け ◦ Windows + Anaconda

http://www.slideshare.net/HirooInamura/windowsvirtualboxtensorflow

本格的に CPU/GPU をぶん回したい人向け ◦ Azure + Docker

11

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

Old Type: VirtualBox + Docker Toolbox

12

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

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

こちらを紹介

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

Docker Toolbox を利用可能するには;

• Windows 7以降 ※ Windows 10 なら Docker for Windows へ

• 64bit OS

• Virtualization が有効

14

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

Windows + VirtualBox + Docker ToolBox

簡単 3 ステップ セットアップ

1. Docker Toolbox for windows をインストール

2. Docker にログインし、TensorFlow イメージをロード

3. TensorFlow につないで使う

15

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

16

Windows (os Mac )

物理サーバ (ベアメタル)

Docker Hub

Repository

Container Image

Container Image

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

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 も含まれている

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

https://docs.docker.com/toolbox/toolbox_install_windows/ を参考にして以下の操作を行う。

1. https://www.docker.com/products/docker-toolbox へ。

2. Download ボタンをクリックしダウンロード。

18

v1.12.6

は203MB!

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

3. ダウンロードした DockerToolbox.exe を右クリックし、「管理者として実行」を選択。

4. ウィザードに従って Docker Toolboxをインストールする。

19

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

1. Docker QuickStart Terminal を 「管理者として実行」する。 端末が開き、メッセージが表示される。

2. マスコットのMoby DockとIPアドレスが表示され起動完了。

20

“管理者として実行”マーク

DockerにアクセスするためのIP ここでは 192.168.99.100

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

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. ...

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

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

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

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

コンテナイメージをロード中

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

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

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

25

Linux or Mac OS X or Windows

物理サーバ (ベアメタル)

Docker Engine

Container

Jupyter

TensorFlow

Application

VirtualBox

Docker Hub

Repository

Container Image

Container Image

Linux

Access

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

1. ブラウザでアクセス http://192.168.99.100:8888

192.168.99.100 Docker世界に割り当てられたIPアドレス

8888 TensorFlow (Jupyter) のポート番号

Jupyter のページが表示されたら成功

26

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

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

トークン文字列をブラウザのパスワード欄に入力

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

これで インストールは完了!

28

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

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

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

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” をコンテナ内で実行する。