Tensorboard で Google の一般物体認識ネットワーク Inception のグラフを見る方法
2015年に公開されたGoogle の一般物体認識NN, Inception-v3 の学習ライブラリが公開された ようなので、理解を深めるために Tensorboard でネットワークを可視化してみた。
前提条件
- Python (version 2.7.10)
- Tensorflow (version 0.8.0)
手順
- 下準備(ワーキングディレクトリの作成)
$ mkdir /tmp/imagenet
$ cd /tmp/imagenet
- トレーニング済みの Inception ネットワークをダウンロード
$ wget http://download.tensorflow.org/models/image/imagenet/inception-2015-12-05.tgz
$ tar xzvf inception-2015-12-05.tgz
- トレーニング済みのInceptionネットワークからグラフ構造をダンプ
- ダンプスクリプトの設置
$ vi dump.py
import os
import os.path
import tensorflow as tf
from tensorflow.python.platform import gfile
INCEPTION_LOG_DIR = '/tmp/inception_v3_log'
if not os.path.exists(INCEPTION_LOG_DIR):
os.makedirs(INCEPTION_LOG_DIR)
with tf.Session() as sess:
model_filename = '/tmp/imagenet/classify_image_graph_def.pb'
with gfile.FastGFile(model_filename, 'rb') as f:
graph_def = tf.GraphDef()
graph_def.ParseFromString(f.read())
_ = tf.import_graph_def(graph_def, name='')
writer = tf.train.SummaryWriter(INCEPTION_LOG_DIR, graph_def)
writer.close()
- グラフをダンプ
$ mkdir /tmp/inception_v3_log
$ python dump.py
- Tensorboard でグラフを確認
- Tensorboard 起動
$ tensorboard --logdir /tmp/inception_v3_log/
-
http://localhost:6006/
にアクセス
参考資料
- https://www.tensorflow.org/versions/r0.8/tutorials/image_recognition/index.html
- https://github.com/tensorflow/tensorflow/issues/1287