Tensorflow: 不使用’with’的tf.name_scope

我想在类似以下的情况下使用tf.name_scope

my_scope = tf.name_scope('something')if cond_1:    foo(my_scope)if cond_2:    bar(my_scope)

我想避免使用with tf.name_scope('something') as scope的写法,因为我不知道什么时候会第一次使用名称范围something。简单的my_scope = tf.name_scope('something')不起作用,会导致错误TypeError: expected string or buffer

目前我使用的是:

with tf.name_scope('something') as scope:    passmy_scope = scopeif cond_1:    foo(my_scope)if cond_2:    bar(my_scope)

这种方法虽然有效,但非常不满意。


回答:

我不确定foobar应该做什么,但上面提供的代码片段中的两个my_scope完全不同。

第一个my_scope是一个上下文管理器,即contextlib.GeneratorContextManager实例。第二个my_scope(就像scope一样)是一个普通的字符串,即"something/"(参见源代码)。你可以用my_scope="something/"达到完全相同的效果。根据错误TypeError: expected string or buffer,这正是foobar所期望的 – 一个字符串。

另外请注意,你可以获取上下文的引用,并在你喜欢的时候进入它。tf.name_scope只是将名称推到堆栈顶部,然后在退出时弹出它。但如果你多次进入同一个名称范围,你会得到一个后缀:_1_2、…

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中创建了一个多类分类项目。该项目可以对…

发表回复

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