TensorFlow 3分紹介 with 速攻 windows 環境構築
-
Upload
michiko-arai -
Category
Software
-
view
211 -
download
0
Transcript of TensorFlow 3分紹介 with 速攻 windows 環境構築
2017年1月期 AITCオープンラボ 第5回機械学習勉強会
「TensorFlowで始めるディープラーニング~入門編」
2017年1月26日 荒井 美千子
0
Googleの “Machine Intelligence” ライブラリ
ニューラルネット, 深層学習など 勾配アルゴリズムが守備範囲
Open Source
Python
機械学習基盤 DistBelief の後継
1
Gmail とか Google猫とか
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
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
グラフ(英: Graph)とは、ノード(頂点)群とノード間の連結関係
を表すエッジ(枝)群で構成される抽象データ型、and・orその
実装である具象データ型である。グラフ理論によるグラフの実
装であり、同理論にもとづく豊富なアルゴリズムの基盤である。
6個の頂点と7本の枝からなるラベル付きグラフ
グラフ = 点を線でつなげたもの
4
テンソル(英: tensor, 独: Tensor)とは、線形的な量または線
形的な幾何概念を一般化したもので、基底を選べば、多次元の
配列として表現できるようなものである。
《途中省略》
古典的なアプローチではテンソルは多次元の配列で、階数0の
スカラーや階数1のベクトル、階数2の行列などの階数nへの一
般化を与えているものと見なされる。テンソルの「成分」は配列
の要素の値によって与えられることになる。
ひとまず “テンソル=行列” と考えればいいかな
5
ニューラルネットワーク(神経回路網、英: neural network, NN)は、脳機能に見られるいくつかの特性を計算機上のシミュレーションによって表現することを目指した数学モデルである。
6
ニューラルネットは “グラフ” で表現され、 つながり具合は “行列(テンソル)”で表現できる
TensorFlow って
ニューラルネット とか
Deep Learning とかに
使えるんだね?
7
さまざまな環境にインストールしてみる
8
基本はLinuxで動く
◦ バイナリパッケージを使う
◦ ソースからビルドする
仮想環境を利用すれば Linux 以外でも動かせる
Windows
Mac OS X
もちろんPublic Cloudで動かすのもアリ
9
最近はWindows版もあるらしい
とにかく素早く簡単に TensorFlow を拝みたい人向け ◦ Old Type
Windows or Mac + VirtualBox + Docker Toolbox
この資料の続きをご覧ください
◦ New Type
Windows or Mac + Docker for Windows or Mac
10
Docker 挟むのは面倒な人向け
◦ Windows + VirtualBox + Anaconda
「いきなり Windows」を試したい人向け ◦ Windows + Anaconda
http://www.slideshare.net/HirooInamura/windowsvirtualboxtensorflow
本格的に CPU/GPU をぶん回したい人向け ◦ Azure + Docker
11
Old Type: VirtualBox + Docker Toolbox
12
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
こちらを紹介
Docker Toolbox を利用可能するには;
• Windows 7以降 ※ Windows 10 なら Docker for Windows へ
• 64bit OS
• Virtualization が有効
14
Windows + VirtualBox + Docker ToolBox
簡単 3 ステップ セットアップ
1. Docker Toolbox for windows をインストール
2. Docker にログインし、TensorFlow イメージをロード
3. TensorFlow につないで使う
15
16
Windows (os Mac )
物理サーバ (ベアメタル)
Docker Hub
Repository
Container Image
Container Image
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 も含まれている
https://docs.docker.com/toolbox/toolbox_install_windows/ を参考にして以下の操作を行う。
1. https://www.docker.com/products/docker-toolbox へ。
2. Download ボタンをクリックしダウンロード。
18
v1.12.6
は203MB!
3. ダウンロードした DockerToolbox.exe を右クリックし、「管理者として実行」を選択。
4. ウィザードに従って Docker Toolboxをインストールする。
19
1. Docker QuickStart Terminal を 「管理者として実行」する。 端末が開き、メッセージが表示される。
2. マスコットのMoby DockとIPアドレスが表示され起動完了。
20
“管理者として実行”マーク
DockerにアクセスするためのIP ここでは 192.168.99.100
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. ...
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
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
コンテナイメージをロード中
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
25
Linux or Mac OS X or Windows
物理サーバ (ベアメタル)
Docker Engine
Container
Jupyter
TensorFlow
Application
VirtualBox
Docker Hub
Repository
Container Image
Container Image
Linux
Access
1. ブラウザでアクセス http://192.168.99.100:8888
192.168.99.100 Docker世界に割り当てられたIPアドレス
8888 TensorFlow (Jupyter) のポート番号
Jupyter のページが表示されたら成功
26
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
トークン文字列をブラウザのパスワード欄に入力
これで インストールは完了!
28
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
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” をコンテナ内で実行する。