Tensorflow中的默认变量作用域是什么?

Tensorflow中默认的全局variable_scope是什么?我如何检查这个对象?有人对此有想法吗?


回答:

从技术上讲,没有针对所有变量的全局变量作用域。如果你在脚本的顶层运行

x = tf.Variable(0.0, name='x')

将会创建一个没有变量作用域的x变量到默认图中。

然而,对于tf.get_variable()函数,情况略有不同:

x = tf.get_variable(name='x')

它首先做的就是调用tf.get_variable_scope()函数,该函数返回当前的变量作用域,而当前的变量作用域会从本地堆栈中查找:

def get_variable_scope():  """返回当前的变量作用域。"""  scope = ops.get_collection(_VARSCOPE_KEY)  if scope:  # 这个集合最多有一个元素,即默认作用域在[0]处。    return scope[0]  scope = VariableScope(False)  ops.add_to_collection(_VARSCOPE_KEY, scope)  return scope

请注意,这个堆栈可能是空的,在这种情况下,会创建一个新的作用域并推到堆栈顶部。

如果这是你需要的对象,你可以通过调用:

scope = tf.get_variable_scope()

从顶层访问它,或者如果已经在一个作用域内,可以直接访问ops.get_collection(_VARSCOPE_KEY)。这正是通过调用tf.get_variable()函数创建新变量时所获取的作用域。这是一个普通的tf.VariableScope类的实例,你可以轻松地检查它。

Related Posts

L1-L2正则化的不同系数

我想对网络的权重同时应用L1和L2正则化。然而,我找不…

使用scikit-learn的无监督方法将列表分类成不同组别,有没有办法?

我有一系列实例,每个实例都有一份列表,代表它所遵循的不…

f1_score metric in lightgbm

我想使用自定义指标f1_score来训练一个lgb模型…

通过相关系数矩阵进行特征选择

我在测试不同的算法时,如逻辑回归、高斯朴素贝叶斯、随机…

可以将机器学习库用于流式输入和输出吗?

已关闭。此问题需要更加聚焦。目前不接受回答。 想要改进…

在TensorFlow中,queue.dequeue_up_to()方法的用途是什么?

我对这个方法感到非常困惑,特别是当我发现这个令人费解的…

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注