码迷,mamicode.com
首页 > 其他好文 > 详细

Tensorflow命名空间与计算图可视化

时间:2018-07-16 21:43:00      阅读:218      评论:0      收藏:0      [点我收藏+]

标签:学习   add   var   learn   包括   情况下   运算   等价   scope   

Tensorflow命名空间与计算图可视化

觉得有用的话,欢迎一起讨论相互学习~Follow Me

参考文献
参考文献Tensorflow实战Google深度学习框架
实验平台:
Tensorflow1.4.0
python3.5.0

  • Tensorflow可视化得到的图并不仅是将Tensorflow计算图中的节点和边直接可视化,它会根据每个Tensorflow计算节点的命名空间来整理可视化得到效果图,使得神经网络的整体结构不会被过多的细节所淹没。除了显示Tensorflow计算图的结构,Tensorflow还可以展示Tensorflow计算节点上的信息进行描述统计,包括频数统计和分布统计。
  • 为了更好的组织可视化效果图中的计算节点,Tensorboard支持通过Tensorflow命名空间来整理可视化效果图上的节点。在Tensorboard的默认视图中,Tensorflow计算图中同一个命名空间下的所有节点会被缩略为一个节点,而顶层命名空间的节点才会被显示在Tensorboard可视化效果图中。

tf.variable_scope和tf.name_scope函数区别

  • tf.variable_scope和tf.name_scope函数都提供了命名变量管理的功能,这两个函数在大部分情况下是等价的,唯一的区别在于使用tf.get_variable函数时:
import tensorflow as tf
# 不同的命名空间
with tf.variable_scope("foo"):
    # 在命名空间foo下获取变量"bar",于是得到的变量名称为"foo/bar"
    a = tf.get_variable("bar", [1])
    print(a.name)
    # foo/bar:0
with tf.variable_scope("bar"):
    # 在命名空间bar下获取变量"bar",于是得到的变量名称为"bar/bar".此时变量在"bar/bar"和变量"foo/bar"并不冲突,于是可以正常运行
    b = tf.get_variable("bar", [1])
    print(b.name)
    # bar/bar:0
#  tf.Variable和tf.get_variable的区别。

with tf.name_scope("a"):
    # 使用tf.Variable函数生成变量时会受到tf.name_scope影响,于是这个变量的名称为"a/Variable"
    a = tf.Variable([1])
    print(a.name)
    # a/Variable: 0

    # tf.get_variable函数不受头tf.name_scope函数的影响,于是变量并不在a这个命名空间中
    a = tf.get_variable("b", [1])
    print(a.name)
    # b:0

# with tf.name_scope("b"):
    # 因为tf.get_variable不受tf.name_scope影响,所以这里将试图获取名称为"a"的变量。然而这个变量已经被声明了,于是这里会报重复声明的错误。
    # tf.get_variable("b",[1])
  • 通过对变量命名空间进行管理,使用Tensorboard查看模型的结构时更加清晰
import tensorflow as tf
with tf.name_scope("input1"):
    input1 = tf.constant([1.0, 2.0, 3.0], name="input2")
with tf.name_scope("input2"):
    input2 = tf.Variable(tf.random_uniform([3]), name="input2")
output = tf.add_n([input1, input2], name="add")

writer = tf.summary.FileWriter("log/simple_example.log", tf.get_default_graph())
writer.close()
  • 这样程序中定义的加法运算都被清晰的展示出来,并且变量初始化等基本操作都被折叠起来。

技术分享图片

  • 点击input2上的加号按钮,能够看到关于input2变量初始化的全过程。

技术分享图片

Tensorflow命名空间与计算图可视化

标签:学习   add   var   learn   包括   情况下   运算   等价   scope   

原文地址:https://www.cnblogs.com/cloud-ken/p/9320481.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!