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

使用LSTM在Python中预测未来值

这段代码可以预测指定股票的当前日期之前的值,但不能预测…

如何在gensim的word2vec模型中查找双词组的相似性

我有一个word2vec模型,假设我使用的是googl…

dask_xgboost.predict 可以工作但无法显示 – 数据必须是一维的

我试图使用 XGBoost 创建模型。 看起来我成功地…

ML Tuning – Cross Validation in Spark

我在https://spark.apache.org/…

如何在React JS中使用fetch从REST API获取预测

我正在开发一个应用程序,其中Flask REST AP…

如何分析ML.NET中多类分类预测得分数组?

我在ML.NET中创建了一个多类分类项目。该项目可以对…

发表回复

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