作者热门文章
- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
在 tensorflow 中,我们创建图形,然后为了将值传递给图形,我们必须启动一个 session 。在下面的代码中,我启动一次 session ,然后尝试通过两种不同的方法打印过滤器。但我无法通过评估获得结果。我是否需要再次提及 tf.Session 才能通过 eval 提取值?我还读到 eval 命令使用默认 session 。所以根据我的理解我有必要提一下。
filter = tf.random_normal(shape=[2,1,1], seed=123)
sess=tf.Session()
print(sess.run(filter))
print(filter.eval())
最佳答案
您需要指定您希望 sess
作为默认 session 。您可以通过几种方式做到这一点。一种是作为上下文管理器:
filter = tf.random_normal(shape=[2,1,1], seed=123)
sess = tf.Session()
with sess.as_default():
print(sess.run(filter))
print(filter.eval())
另一个选项是使用 tf.InteractiveSession
,这是一个常规 session ,在构造时将自身注册为默认 session :
filter = tf.random_normal(shape=[2,1,1], seed=123)
sess = tf.InteractiveSession()
print(sess.run(filter))
print(filter.eval())
顾名思义,tf.InteractiveSession
推荐用于交互式使用。完整的程序或模块应该更喜欢上下文管理器(或者只是避免 .eval()
)以避免错误。
编辑:如果您使用上下文管理器,您还可以使用它来确保您的 session 也已关闭:
filter = tf.random_normal(shape=[2,1,1], seed=123)
with tf.Session() as sess, sess.as_default():
print(sess.run(filter))
print(filter.eval())
# sess will be closed after with block
关于python - 如何在 tensorflow 中使用 eval() 提取值以及我们需要启动 session 多少次,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52479017/
我是一名优秀的程序员,十分优秀!