TadaoYamaokaの開発日記

個人開発しているスマホアプリや将棋AIの開発ネタを中心に書いていきます。

Protocol BuffersをTensorBoardでグラフ表示

バリューネットワークにはプーリング層が有効らしく、AQでもバリューネットワークはプーリング層を使っているようなので、AQのニューラルネットワークの構成を調べてみた。

GitHubで公開されているソースでは、ニューラルネットワーク構成は、Protocol Buffersの形式で保存されていたので、TensorBoardで可視化してみた。

TensorBoardでProtocol Buffersのグラフを表示する方法

Protocol Buffers形式は、TensorBoardで直接開くことができない。
一旦ログ形式にする必要がある。

やり方はここに書かれていた方法を参考にした。
tensorboard: view graph from saved_model.pb file [feature request] · Issue #8854 · tensorflow/tensorflow · GitHub

import tensorflow as tf
from tensorflow.python.platform import gfile
with tf.Session() as sess:
    model_filename ='AQ/pb/vl.pb'
    with gfile.FastGFile(model_filename, 'rb') as f:
        graph_def = tf.GraphDef()
        graph_def.ParseFromString(f.read())
        g_in = tf.import_graph_def(graph_def)
LOGDIR='log'
train_writer = tf.summary.FileWriter(LOGDIR)
train_writer.add_graph(sess.graph)

logディレクトリにログ形式で保存されるので、

tensorboard --logdir log

のように実行する。

ブラウザでコントロールに表示されたURLを開くとニューラルネットワーク構成をグラフで表示できる。

f:id:TadaoYamaoka:20180801084253p:plain