gpt4 book ai didi

python - 如何在 tensorflow 中使用 eval() 提取值以及我们需要启动 session 多少次

转载 作者:行者123 更新时间:2023-12-01 01:34:56 25 4
gpt4 key购买 nike

在 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/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com