22
21

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 5 years have passed since last update.

ここが分かればTensorflowを使い始めれる!

Last updated at Posted at 2016-08-03

Tensorflowとは

データフローグラフ

Tensorflowではデータフローグラフと言われる、データの流れ(フロー)を定義したグラフで処理が実行されます。
円(定数)と楕円(数学的な操作)の部分がノード(オペレーション)で、ノードを結ぶ線がエッジでtensor(多次元データ配列)を表します。
※ 円(定数)はプログラム上では定数を表しているように見えますが、Tensorflowでは値を出力するオペレーションです。

スクリーンショット 2016-08-03 12.24.27.png

Tensor(テンソル)

Tensor(テンソル)とはn次元の多次元配列を意味しますが、具体的には以下の通りです。

Rank(階数) Math Entity
0 Scalar
(0次元)
s = 483
1 Vector
(1次元)
v = [1.1, 2.2, 3.3]
2 Matrix
(2次元)
m = [
[1, 2, 3],
[4, 5, 6],
[7, 8, 9]
]
3 3-Tensor
(3次元)
t = [
[[2], [4], [6]],
[[8], [10], [12]],
[[14], [16], [18]]
]
n n-Tensor
(n次元)
 ・・・

実行

上記で定義した各ノードのオペレーションを実行し結果を得るには、Sessionオブジェクトを作成し、その中で実行する必要があります。

例えば以下のように単なる定数を定義しますが、Sessionを実行するまでは、Tensorオブジェクトですが、Sessionを実行するとスカラー値「1」が取得できます。

sample.py
import tensorflow as tf
one = tf.constant(1, name='one')
print(one) # Tensor("one:0", shape=(), dtype=int32)
sess = tf.Session()
result = sess.run(one)
print(result) # 1

足し算と掛け算を用いたサンプル(python 2.7系)

以下は、1と2を足した結果に3を掛けると言うデータフローグラフを表しています。
※ Tensorflowに付属のTensorboardを使ってコードで記述した定義を生成

スクリーンショット 2016-08-03 12.23.22.png

# coding: utf-8
import tensorflow as tf
one = tf.constant(1, name='one') # 定数を定義(nameはTensorboard上で見やすいようにつけているだけ付けなくても大丈夫です)
two = tf.constant(2, name='two')
three = tf.constant(3, name='three')
add = tf.add(one, two, name="add") # 足し算を定義
mul = tf.mul(add, three, name="multiply") # 掛け算を定義
init = tf.initialize_all_variables() # 定数初期化用

with tf.Session() as sess:
  sess.run(init) # すべての変数を初期化
  sess.run([add, mul])
  tf.train.SummaryWriter('events', sess.graph) # グラフの可視化用

TensorBoardの起動

手順

手順1. sample.pyを実行

python sample.py

手順2. tensorboard実行

上記のサンプル(sample.py)で指定したeventsをtensorboard実行時に指定します。

sample.py
  tf.train.SummaryWriter('events', sess.graph) # グラフの可視化用
tensorboard --logdir=events

あとはコンソールに表示されたURLにアクセスしてGraphsメニューをクリックすると

(You can navigate to http://0.0.0.0:6006)

以下参考までにTensorflowのインストール方法です

Install

Python

brew install pyenv-virtualenv
PYTHON_CONFIGURE_OPTS="--enable-unicode=ucs2" pyenv install 2.7.11
pyenv rehash
echo 'export PYENV_ROOT="$HOME/.pyenv"' >> ~/.bash_profile
echo 'export PATH="$PYENV_ROOT/bin:$PATH"' >> ~/.bash_profile
echo 'eval "$(pyenv init -)"' >> ~/.bash_profile

Tensorflow

TensorflowをMacにインストールする場合は以下のリンクを参照してください

  • ~/.matplotlib/matplotlibrc
matplotlibrc
backend : TkAgg
22
21
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
22
21

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?