TensorFlow命名空间和TensorBoard图节点实例
作者:legend_hua 发布时间:2022-01-15 04:52:23
标签:TensorFlow,命名空间,TensorBoard,图节点
一,命名空间函数
tf.variable_scope
tf.name_scope
先以下面的代码说明两者的区别
# 命名空间管理函数
'''
说明tf.variable_scope和tf.name_scope的区别
'''
def manage_namespace():
with tf.variable_scope("foo"):
# 在命名空间foo下获取变量"bar",于是得到的变量名称为"foo/bar"。
a = tf.get_variable("bar",[1]) #获取变量名称为“bar”的变量
print a.name #输出:foo/bar:0
with tf.variable_scope("bar"):
# 在命名空间bar下获取变量"bar",于是得到的变量名称为"bar/bar"。
a = tf.get_variable("bar",[1])
print a.name #输出:bar/bar:0
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影响,所以这里将试图获取名称
# 为“b”的变量。然而这个变量已经被声明了,于是这里会报重复声明的错误
tf.get_variable("b",[1])#提示错误
二,TensorBoard计算图查看
1 以以下代码实例,为指定任何的命名空间
def practice_num1():
# 练习1: 构建简单的计算图
input1 = tf.constant([1.0, 2.0, 3.0],name="input1")
input2 = tf.Variable(tf.random_uniform([3]),name="input2")
output = tf.add_n([input1,input2],name = "add")
#生成一个写日志的writer,并将当前的tensorflow计算图写入日志
writer = tf.summary.FileWriter(ROOT_DIR + "/log",tf.get_default_graph())
writer.close()
如何使用TensorBoard的过程不再介绍。查看未指明命名空间的运算图
2 修改代码制定命名空间之后的代码
def practice_num1_modify():
#将输入定义放入各自的命名空间中,从而使得tensorboard可以根据命名空间来整理可视化效果图上的节点
# 练习1: 构建简单的计算图
with tf.name_scope("input1"):
input1 = tf.constant([1.0, 2.0, 3.0],name="input1")
with tf.name_scope("input2"):
input2 = tf.Variable(tf.random_uniform([3]),name="input2")
output = tf.add_n([input1,input2],name = "add")
#生成一个写日志的writer,并将当前的tensorflow计算图写入日志
writer = tf.summary.FileWriter(ROOT_DIR + "/log",tf.get_default_graph())
writer.close()
查看运算图
上图只包含命名的两个命名空间的节点,我们可以点击名称“input2”的图标上的+号,展开该命名空间
效果:通过命名空间可以整理可视化效果图上的节点,使可视化的效果更加清晰。
来源:https://blog.csdn.net/legend_hua/article/details/78875625


猜你喜欢
- 需要实现的组件效果:该组件有设置颜色、大小、旋转度数和文本内容功能。一、组件实现代码组件代码文件结构src/components/Stamp
- FTP一般流程FTP对应PASV和PORT两种访问方式,分别为被动和主动,是针对FTP服务器端进行区分的,正常传输过程中21号端口用于指令传
- 下面代码写的是js验证检查输入的字符是否是全角的函数:效果演示:<script> function i
- mysql误删数据使用delete语句误删数据行使用drop table或者truncate table误删数据表使用drop databa
- anaconda指的是一个开源的Python
- 对Vue全家桶有基本的认知.用有node环境了解express一丶业务分析1.什么情况下进行权限验证?访问敏感接口前端向后端敏感接口发送aj
- 前言深度学习框架在市面上有很多。比如Theano、Caffe、CNTK、MXnet 、Tensorflow等。今天讲解的就是主角Tensor
- 为了检验自己前期对机器学习中线性回归部分的掌握程度并找出自己在学习中存在的问题,我使用C语言简单实现了单变量简单线性回归。本文对自己使用C语
- 一、 前期准备1. 设置GPU如果设备上支持GPU就使用GPU,否则使用CPUimport torchimport torch.nn as
- 本文实例讲述了Python中列表元素转为数字的方法。分享给大家供大家参考,具体如下:有一个数字字符的列表:numbers = ['2
- 自从web2.0之后,网页设计开始走向实用设计的阶段,越来越多的设计师注意到“为表达信息而设计”。着迷于前段时间黑白灰老师给大家介绍的“in
- 1、cat:拼接直接合并数据2、stack拼接:与cat不同的是,stack创建了一个新的维度,在拼接的同时,给数据增加了类别。并且stac
- $emit传入的事件名称只能使用小写,不能使用大写的驼峰规则命名如果修改后还是不行的话,就改用:this.$parent.Event (Ev
- Flask Web开发实战学习笔记Flask简介Flask是使用Python编写的Web微框架。Web框架可以让我们不用关 心底层的请求响应
- 最近在配置mysql服务器需要用到的一些设置,经过测试发现比较不错的配置方案,亮点在最后啊先说一点问题: Mysql中的InnoD
- Vue Demi是什么如果你想开发一个同时支持Vue2和Vue3的库可能想到以下两种方式:1.创建两个分支,分别支持Vue2和Vue32.只
- 话不多说,直接附上源码,仅供参考封装了一下,要用的话直接调用下面getEvent函数即可function getEvent() { if (
- 本文实例讲述了javascript将数字转换整数金额大写的方法。分享给大家供大家参考。具体实现方法如下:function digit_upp
- 一、Go语言下载go语言官方下载地址:https://golang.org/dl/找到适合你系统的版本下载,本人下载的是windows版本。
- 概述在实践中,我们发现上述的代码重复率非常高,新增和修改都费力,并且是没技术含量的体力活。 但又必须要这样做,不适合以公共函数的形式重用,为