专栏首页python前行者tf.name_scope()和tf.variable_scope()

tf.name_scope()和tf.variable_scope()

tf.variable_scope可以让变量有相同的命名,包括tf.get_variable得到的变量,还有tf.Variable的变量

tf.name_scope可以让变量有相同的命名,只是限于tf.Variable的变量

例如:

import tensorflow as tf;  
import numpy as np;  
import matplotlib.pyplot as plt;  
 
with tf.variable_scope('V1'):
	a1 = tf.get_variable(name='a1', shape=[1], initializer=tf.constant_initializer(1))
	a2 = tf.Variable(tf.random_normal(shape=[2,3], mean=0, stddev=1), name='a2')
with tf.variable_scope('V2'):
	a3 = tf.get_variable(name='a1', shape=[1], initializer=tf.constant_initializer(1))
	a4 = tf.Variable(tf.random_normal(shape=[2,3], mean=0, stddev=1), name='a2')
  
with tf.Session() as sess:
	sess.run(tf.initialize_all_variables())
	print(a1.name)
	print(a2.name)
	print(a3.name)
	print(a4.name)

输出:

V1/a1:0
V1/a2:0
V2/a1:0
V2/a2:0

例子2:

import tensorflow as tf;  
import numpy as np;  
import matplotlib.pyplot as plt;  
 
with tf.name_scope('V1'):
	a1 = tf.get_variable(name='a1', shape=[1], initializer=tf.constant_initializer(1))
	a2 = tf.Variable(tf.random_normal(shape=[2,3], mean=0, stddev=1), name='a2')
with tf.name_scope('V2'):
	a3 = tf.get_variable(name='a1', shape=[1], initializer=tf.constant_initializer(1))
	a4 = tf.Variable(tf.random_normal(shape=[2,3], mean=0, stddev=1), name='a2')
  
with tf.Session() as sess:
	sess.run(tf.initialize_all_variables())
	print(a1.name)
	print(a2.name)
	print(a3.name)
	print(a4.name)

报错:Variable a1 already exists, disallowed. Did you mean to set reuse=True in VarScope? Originally defined at:

换成下面的代码就可以执行:

import tensorflow as tf;  
import numpy as np;  
import matplotlib.pyplot as plt;  
 
with tf.name_scope('V1'):
	# a1 = tf.get_variable(name='a1', shape=[1], initializer=tf.constant_initializer(1))
	a2 = tf.Variable(tf.random_normal(shape=[2,3], mean=0, stddev=1), name='a2')
with tf.name_scope('V2'):
	# a3 = tf.get_variable(name='a1', shape=[1], initializer=tf.constant_initializer(1))
	a4 = tf.Variable(tf.random_normal(shape=[2,3], mean=0, stddev=1), name='a2')
  
with tf.Session() as sess:
	sess.run(tf.initialize_all_variables())
	#print(a1.name)
	print(a2.name)
	#print(a3.name)
	print(a4.name)

输出:

V1/a2:0
V2/a2:0

参考:https://blog.csdn.net/UESTC_C2_403/article/details/72328815 https://www.imooc.com/article/22966

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

我来说两句

0 条评论
登录 后参与评论

相关文章

  • tf.Variable()函数

    tf.Variable(initializer,name),参数initializer是初始化参数,name是可自定义的变量名称,用法如下:

    周小董
  • tf.get_variable

    如果initializer初始化方法是None(默认值),则会使用variable_scope()中定义的initializer,如果也为None,则默认使用g...

    周小董
  • Tensorflow模型保存和读取tf.train.Saver

    然后,在训练循环中,定期调用 saver.save() 方法,向文件夹中写入包含了当前模型中所有可训练变量的 checkpoint 文件。

    周小董
  • 教程 | 维度、广播操作与可视化:如何高效使用TensorFlow

    选自GitHub 机器之心编译 参与:Nurhachu Null、李泽南 本文从 Tensorflow 基础、理解静态维度和动态维度、广播操作(Broading...

    机器之心
  • Tensorboard可视化(一)

    如果可视化不出来,浏览器输入localhost:你的dos下的端口号,进去了没有图片,请检查运行命令,

    公众号guangcity
  • ROS探索总结(十二)——坐标系统

    在机器人的控制中,坐标系统是非常重要的,在ROS使用tf软件库进行坐标转换。

    用户1908973
  • 深度学习(五)--常量与变量

    在这里的 init 是初始化所有的变量,它自己本身也是一个节点,所以我们也要通过session的run()方法对它进行初始化,如果我们注释掉sess.run(i...

    Python进击者
  • tensorflow零起点快速入门(7),截图整理

    tf.one_hot的必要性在于:one_hot方式,去掉了标签的顺序影响,让输出标签之间的欧式距离相等。而不是认为,标签1和标签3的距离,与标签2和标签3的距...

    嘘、小点声
  • 【Tensorflow】 写给初学者的深度学习教程之 MNIST 数字识别

    一般而言,MNIST 数据集测试就是机器学习和深度学习当中的"Hello World"工程,几乎是所有的教程都会把它放在最开始的地方.这是因为,这个简单的工程包...

    Frank909
  • TensorFlow 2.0快速上手指南12条:“Keras之父”亲授 | 高赞热贴

    谷歌深度学习研究员、“Keras之父”François Chollet发表推特,总结了一份TensorFlow 2.0 + Keras做深度学习研究的速成指南。

    量子位

扫码关注云+社区

领取腾讯云代金券