バリューネットワークにはプーリング層が有効らしく、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を開くとニューラルネットワーク構成をグラフで表示できる。