Hakky
Twitter:@St_Hakky
What is Tensorflow?
What is Tensorflow?
・2015年11⽉に公開された、Googleが開発した
OSSな機械学習ライブラリ
・Python/Cから使える
・機械学習のモデルを柔軟に表現できる。NN限定
ではない
What is Tensorflow?
・CPU/GPUで実⾏可能。分散処理も可
・Mac/Linuxで実⾏可能。Windowsはダメ。
・計算過程をグラフで可視化できる
(TensorBoard)
Tensorflowにおける計算
Tensorflowは、多次元の
データ(Tensor)を、グラフ
構造で定義して計算を
フローのようにする(flow)。
Tensorflowを使うために
理解するべきたった2つの事
計算やデータの型をグラフで
定義してから実⾏すること
データはTensor形式で使うこと
データはTensor形式で使うこと
Tensorとは
テンソル(tensor)とは、線形的な量また
は線形的な幾何概念を⼀般化したもの
で、基底を選べば、多次元の配列とし
て表現できるようなものである。
Wikipedia
Tensorとは
Tensor = 多次元配列
Tensorとは
Tensorflowでは、Tensor形式の
データしか処理されない。
Tensorとは:ランク,型
ランクは、つまり次元のこと。
型は、float, int, unsigned int, boolean, stringとかが
使える。ビットの指定とかもできる。1つのTensorに複
数の型が混ざってもおk。
Tensorの使い⽅:定数
定数は、constantメソッドを使う。
この場合は、1x2の⾏列を定義。
Tensorの使い⽅:⼊⼒
⼊⼒される値は、placeholerメソッドを使う。
この場合は、2-DのTensorを定義。あとで触れるが、
⼊⼒としてTensorの形だけを定義しておき、実⾏時に
値を⼊⼒することで使⽤。
Tensorの使い⽅:変数
パラメータなどの変数は、Variableメソッドを使って定
義。
変数は、初期値とTensorの形を定義する必要がある。
計算やデータの型をグラフで
定義してから実⾏すること
Tensorflowによる実⾏までの2ステップ
① Graphの定義
② Sessionによる実⾏
・Tensor(データ)とそのFlow(計算処理の過程)をグラフ構造として、
定義する
・定義をするだけなので、この時点ではパラメータなどの値は確定しない
・グラフモデルから計算を実際に実⾏し、値を確定する
・計算を実⾏する際は、Sessionを使⽤する。
① Graphの定義
② Sessionによる実⾏
Tensorflowの場合
普通の処理の場合
計算処理の過程と実⾏は同じ⽂脈でプログラム上で書
かれる。
計算処理の過程やデータの設定が、実⾏と分離
基本の使い⽅を
コードでみてみる
Graphを定義
まずは、簡単なGraph(Tensorの定義と計算)を定義。
Tensorflowをインポート
定数のTensorを定義
定数のTensorを定義
計算⽅法を定義(まだ実⾏されていないことに注意)
Sessionで実⾏
まずは、簡単なGraph(Tensorの定義と計算)を定義。
Sessionのインスタンスを作成
Sessionで実⾏
○計算過程をグラフで可視化できる
TensorBoard
・計算を実⾏した後に、以下のコマンドを実⾏
・その後、ブラウザで「localhost:6006」に移動
○起動⽅法・使い⽅
MNIST Tutorial
What is MNIST?
機械学習のHello Wrold的存在。⼿書きの数字のデー
タセット。
今回はこのデータセットを⽤いて、次の⼆つのこと
を⾏う。
・ソフトマックス関数による分類
・CNNによる分類
ソフトマックス関数による分類
今回は、ニューラルネットワークとソフトマックス
関数を⽤いた分類を⾏う。
ソフトマックス関数による分類
先ほどの図で表されたニューラルネットワークとソ
フトマックス関数を⽤いた分類の図は以下の式で表
される。
CNNによる分類
今回は、次のようなCNNを想定。
Input
層
Convolution
層
Pooling
層 Convolution
層
Pooling
層
Full	Connection
層
Output
層
Demo with MINST Tutorial
コードはGithubにあるので、どうぞ。
参考
・Tensorflow
https://www.tensorflow.org
・Tensorflow	White	Paper
http://download.tensorflow.org/paper/whitepaper2015.pdf
・Jupyter Notebook	Scientific	Python	Stack	+	Tensorflow
https://github.com/jupyter/docker-stacks/tree/master/
tensorflow-notebook

Tensorflow