TensorFlowでセッションとSaverについて
この記事から少しずつ機械学習要素がぽつぽつと出てきます.
今日はSaverとTensorBoardについてです.
前回の記事で,tf.session()を使って計算の実行を行いました.
TensorFlowの使い方をまだ知らないって人は,前回の記事をご覧ください.
それでは始めます.
\二本立て/
Saverって?
Saverは,複数のセッションで計算結果を使いまわすときに使います.
セッションが変わると,変数は元の値になってしまうので,せっかく計算した値が別のセッションでは使われないということが発生してしまいます.
それのためにSaverを使います.
機械学習で,モデルの学習時にも使います.
一度,下記コードを実行してみます.
import tensorflow as tf a = tf.Variable(1, name = 'a') b = tf.assign(a, a + 1) with tf.Session() as sess: sess.run(tf.global_variables_initializer()) print("1:", sess.run(b)) with tf.Session() as sess: sess.run(tf.global_variables_initializer()) print("2:", sess.run(b))
これの実行結果は.
1: 2
2: 2
ということになります.
では,セッションが変わったときに,どうするかというと,さっきのSaverです.Saver込みのプログラムを示しておきます.
import tensorflow as tf a = tf.Variable(1, name = 'a') b = tf.assign(a, a + 1) saver = tf.train.Saver() with tf.Session() as sess: sess.run(tf.global_variables_initializer()) print("1:", sess.run(b)) saver.save(sess, 'model/model.ckpt') with tf.Session() as sess: sess.run(tf.global_variables_initializer()) saver.restore(sess, save_path = 'model/model.ckpt') print("2:", sess.run(b))
これを実行すると,
1: 2
INFO:tensorflow:Restoring parameters from model/model.ckpt
2: 3
となります.
セッションが変わっても,値が初期化されずに済みました.
厳密にいうと,初期化されてますが,saver.saveで,モデルを保存して,saver.restoreで,モデルの読み込みをしています.
グラフの可視化
ここで言うグラフとは,データフローグラフのグラフのことです.
グラフの可視化には,TensorBoardを使います.初期装備です,追加のインストールはありません.
流れとしては,実行→サマリの書き出し→グラフの可視化
といった感じです.
早速プログラムです.
import tensorflow as tf LOG_DIR = './logs' a = tf.constant(1, name = 'a') b = tf.constant(1, name = 'b') c = a + b graph = tf.get_default_graph() with tf.summary.FileWriter(LOG_DIR) as write: write.add_graph(graph)
\こんなの覚えられないよ/
^^
これを実行すると,該当のディレクトリに"events.out....."みたいなファイルが保存されているはずです.
次にコマンドプロンプトを開いて,該当のディレクトリのひとつ前まで移動します.
Anacondaユーザーは[Open terminal]で新しく開きましょう.
そしたら,コマンドプロンプトで
>tensorboard --logdir=logs
を実行してください.
そうしたら,URLが出てきたと思うので,それにアクセスしてください.
ちなみに自分の場合は,出てきたURLだと,マシンによってはなぜかアクセスできませんでした.なので,http;//localhost:(出てきた番号)でアクセスしましょう.
こんな感じで出てきます.
前回の記事にも登場しているのですが,aとbを足すんだなぁ・・・って感じのグラフですね.それ以外に言いようがありません.間違いない(確信).
現場で使える! TensorFlow開発入門 Kerasによる深層学習モデル構築手法 (AI & TECHNOLOGY)
- 作者: 太田満久,須藤広大,黒澤匠雅,小田大輔
- 出版社/メーカー: 翔泳社
- 発売日: 2018/04/19
- メディア: 単行本(ソフトカバー)
- この商品を含むブログ (2件) を見る