1
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 5 years have passed since last update.

TensorFlow > with tf.name_scope('summaries'): > Scopeの分割

Last updated at Posted at 2016-10-11

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がある。

qiita.png

TensorBoardのGraphを見やすくできるようだ。

1
1
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
1
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?