TensorFlowというDeep Learning関連コードを学習中。
https://www.tensorflow.org/versions/master/tutorials/mnist/tf/index.html#tensorflow-mechanics-101
mnist_with_summary.pyについて
def variable_summaries(var, name):
"""Attach a lot of summaries to a Tensor."""
with tf.name_scope('summaries'):
mean = tf.reduce_mean(var)
tf.scalar_summary('mean/' + name, mean)
with tf.name_scope('stddev'):
stddev = tf.sqrt(tf.reduce_mean(tf.square(var - mean)))
tf.scalar_summary('stddev/' + name, stddev)
tf.scalar_summary('max/' + name, tf.reduce_max(var))
tf.scalar_summary('min/' + name, tf.reduce_min(var))
tf.histogram_summary(name, var)
with tf.name_scope('summaries'):
という構文を未消化だった。
このままではデータ量が多くやや複雑なので、with tf.name_scope('hoge') as scope:を使ってScopeを分割してみます。
リンク先の例がわかりやすい。
mnist_with_summary.pyのコードで上記のようにScope分割しているが、分割したもの(summariesのScopeなど)を他で使っている感じがしない。このあたりは未消化。
試しに変更
def variable_summaries(var, name):
"""Attach a lot of summaries to a Tensor."""
with tf.name_scope('summaries'):
mean = tf.reduce_mean(var)
tf.scalar_summary('mean/' + name, mean)
with tf.name_scope('stddev'):
stddev = tf.sqrt(tf.reduce_mean(tf.square(var - mean)))
tf.scalar_summary('stddev/' + name, stddev)
tf.scalar_summary('max/' + name, tf.reduce_max(var))
tf.scalar_summary('min/' + name, tf.reduce_min(var))
tf.histogram_summary(name, var)
を
def variable_summaries(var, name):
"""Attach a lot of summaries to a Tensor."""
# with tf.name_scope('summaries'):
mean = tf.reduce_mean(var)
tf.scalar_summary('mean/' + name, mean)
with tf.name_scope('stddev'):
stddev = tf.sqrt(tf.reduce_mean(tf.square(var - mean)))
tf.scalar_summary('stddev/' + name, stddev)
tf.scalar_summary('max/' + name, tf.reduce_max(var))
tf.scalar_summary('min/' + name, tf.reduce_min(var))
tf.histogram_summary(name, var)
としてみたが、TensorBoard上の表示は変化ないように見える。
コードにおいてScopeを識別して使う時があるのだろうか。
http://www.mwsoft.jp/programming/tensor/tutorial_tensorboad.html
を見るとTensorBoardのGraph表示で違いが出てくるようだ。
あらためてTensorBoardのGraphを見ても'summaries'や'stddev'の表記は見つかっていない。
他の例をこなすうちにわかるだろう。
見つけた
layer1の下にweightsがあり、weightsの下にsummariesがある。summariesの中にstddevがある。
TensorBoardのGraphを見やすくできるようだ。