- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
N.B. The default session is a property of the current thread. If you create a new thread, and wish to use the default session in that thread, you must explicitly add a with sess.as_default(): in that thread's function.
我的理解是,如果创建新线程时多了两个 session ,我们必须设置一个 session 来在其中运行 TensorFlow 代码。因此,为此,需要选择一个 session 并调用 as_default()
。
N.B. Entering a with sess.as_default(): block does not affect the current default graph. If you are using multiple graphs, and sess.graph is different from the value of tf.get_default_graph, you must explicitly enter a with sess.graph.as_default(): block to make sess.graph the default graph.
在sess.as_default()
block 中,要调用特定的图,必须调用sess.graph.as_default()
来运行该图?
最佳答案
tf.Session API 提到图表是在 session 中启动的。下面的代码说明了这一点:
import tensorflow as tf
graph1 = tf.Graph()
graph2 = tf.Graph()
with graph1.as_default() as graph:
a = tf.constant(0, name='a')
graph1_init_op = tf.global_variables_initializer()
with graph2.as_default() as graph:
a = tf.constant(1, name='a')
graph2_init_op = tf.global_variables_initializer()
sess1 = tf.Session(graph=graph1)
sess2 = tf.Session(graph=graph2)
sess1.run(graph1_init_op)
sess2.run(graph2_init_op)
# Both tensor names are a!
print(sess1.run(graph1.get_tensor_by_name('a:0'))) # prints 0
print(sess2.run(graph2.get_tensor_by_name('a:0'))) # prints 1
with sess1.as_default() as sess:
print(sess.run(sess.graph.get_tensor_by_name('a:0'))) # prints 0
with sess2.as_default() as sess:
print(sess.run(sess.graph.get_tensor_by_name('a:0'))) # prints 1
with graph2.as_default() as g:
with sess1.as_default() as sess:
print(tf.get_default_graph() == graph2) # prints True
print(tf.get_default_session() == sess1) # prints True
# This is the interesting line
print(sess.run(sess.graph.get_tensor_by_name('a:0'))) # prints 0
print(sess.run(g.get_tensor_by_name('a:0'))) # fails
print(tf.get_default_graph() == graph2) # prints False
print(tf.get_default_session() == sess1) # prints False
您不需要调用sess.graph.as_default()
来运行该图,但您需要在图中获取正确的张量或操作来运行它。上下文允许您使用 tf.get_default_graph
或 tf.get_default_session
获取图表或 session 。
在上面有趣的一行中,默认 session 是 sess1
并且它隐式调用 sess1.graph
,这是 sess1
中的图表,这是 graph1
,因此它打印 0。
在接下来的行中,它失败了,因为它尝试使用 sess1
在 graph2
中运行操作。
关于tensorflow - 如何理解sess.as_default()和sess.graph.as_default()?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45093688/
在 tensorflow 中,如果我们想要运行多个操作,如果我们将列表中的操作传递给单个 sess.run() 与我们使用多个 sess.run() 但只向每个操作传递一个操作? 示例: #!/usr
我尝试通过以下代码来训练我的模型。 sess.run([train_op, model.global_step, model.loss, model.prediction], feed_dict) 但
我正在训练 CNN,我相信我使用了 sess.run()导致我的训练速度非常慢。 本质上,我使用 mnist数据集... from tensorflow.examples.tutorials.mnis
我有一些扩展名为 *.sess 的 session 文件。如何在 Linux/Windows 上打开它?我尝试使用普通的文本编辑器,但我得到了部分垃圾值和部分实际文本。谢谢! 最佳答案 我希望您正在尝
使用 tf print documentation 我写的 print_op = tf.print("tensors:", cut_points[0,0,:], output_stream=s
我正在尝试向我的神经网络提供存储在 TFRecords 中的数据。数据是使用 inputs() 提取的,与 tensorflow 网页上的提取方式类似。它返回的数据是两个张量。当我尝试eval()张量
我想对单个 sess.run() 调用执行多个梯度下降步骤。每次调用的输入都是固定的,因此我只需要传递一次。 我该怎么做?我有一个想法,但我不确定它是否会在每一步重新计算梯度(而是应用第一个梯度 N
我在 Koa 中使用 Passport.js,我注意到当生成 session cookie 时,它被称为 koa:sess并包含编码为 Base64 的 session 信息。然而,还有另一个 c
我正在测试tensorflow队列系统,并且我有一个简单的tensorflow程序,它使用队列来处理输入。示例程序代码为 import tensorflow as tf import numpy as
我正在尝试逐批训练我的模型,因为我找不到任何示例来说明如何正确地训练它。这是我所能做的,我的任务是找到如何在 Tensorflow 中逐批训练模型。 queue=tf.FIFOQueue(capaci
我试着玩了一下 tensorflow,但似乎我做错了什么,我制作的小程序: import tensorflow as tf x = tf.placeholder(tf.float64) y = tf.
我是 Tensorflow 新手,遇到了一个问题。当我的程序到达 x_batch = sess.run(X_mb) 时,它被卡住了(因此,它可以打印 1 和 2,但无法打印 4。我猜这是一个无限循环)
我一直以为变量赋值是在给sess.run的列表中的所有操作之后完成的,但是下面的代码在不同的执行中返回不同的结果。似乎随机运行列表中的操作并在列表中的操作运行后分配变量。 a = tf.Variabl
所以,这可能是一个愚蠢或显而易见的问题,但请耐心等待。我是一名数学专业的学生,我已经进入最后一年了,一直在学习使用神经网络来取乐。我不是程序员,所以错误是我经常遇到的事情。通常我可以把它们整理出来
我在 tensorflow 下运行 python 程序。当我输入sess.run()时,命令行提示我NameError: name 'sess' is not defined print(sess.r
我在 Python v2.7 中使用 tensorflow 0.8.0。我的 IDE 是 PyCharm,我的操作系统是 Linux Ubuntu 14.04 我注意到以下代码会导致我的计算机死机和/
下面的代码会挂起(只有 CTRLz 让我退出)。 import tensorflow as tf import cifar10 # from https://github.com/tensorflow
sess.graph 和 tf.get_default_graph() 在 tensorboard 中给出相同的结果。根据手册,我不太清楚它们之间有什么区别。有人可以帮忙解释一下区别吗? anybob
这些帖子确实有数千篇,但我还没有看到一篇能解决我的确切问题的帖子。如果存在,请随时关闭。 我知道列表在 Python 中是可变的。因此,我们不能将列表存储为字典中的键。 我有以下代码(因为不相关而省略
我是 tensorflow 的新手。我有一些我想理解的代码。有没有办法在 sess.run 中获取“feed_dict”的所有可能输入的列表? feed_dict 的结构是始终相同还是取决于 sess
我是一名优秀的程序员,十分优秀!