命名空间可以看成是一个集合,我们可以在里面创建变量,里面存放着的变量就是它的元素。例如我们定义一个命名空间命名为space,然后定义变量V1、V2,则我们就创建了一个有变量V1、V2的命名空间。
在训练深度网络时,为了减少需要训练参数的个数(比如LSTM模型),或者是多机多卡并行化训练大数据、大模型等情况时,往往就需要共享变量。另外一方面是当一个深度学习模型变得非常复杂的时候,往往存在大量的变量和操作,如何避免这些变量名和操作名的唯一不重复,同时维护一个条理清晰的graph非常重要。
利用tf.Variable_scope(), tf.name_scope() 创建上下文处理器的方式来创建,然后可以在上下文处理器中用tf.Variable或者tf.get_variable来创建变量,如:
import tensorflow as tf #创建命名空间并创建变量 with tf.variable_scope(name_or_scope=‘s1‘): v1=tf.get_variable(name=‘v1‘,initializer=tf.ones([1,1])) with tf.name_scope(name=‘s2‘): v2=tf.Variable(tf.ones([1,1]),name=‘v2‘) #输出变量名 print(v1.name) print(v2.name)
tensorflow框架学习 (六)—— 命名空间与可视化工具tensorboard
原文:https://www.cnblogs.com/dwithy/p/11347122.html