在 tensorflow 中,如果我们想要运行多个操作,如果我们将列表中的操作传递给单个 sess.run()
与我们使用多个 sess.run()
但只向每个操作传递一个操作?
示例:
#!/usr/env/bin python
import tensorflow as tf
if __name__ == '__main__':
v = tf.Variable(0)
c = tf.constant(3)
add = tf.add(v, c)
update = tf.assign(v, add)
mul = tf.multiply(add, update)
init = tf.compat.v1.global_variables_initializer()
# method 1
with tf.Session() as sess:
sess.run(init)
print(sess.run(add))
print(sess.run(mul))
# method 2
with tf.Session() as sess:
print(sess.run([init, add, mul]))
编辑:最初我也想知道是否存在多个 session 会导致不同结果的情况,例如计算图中的依赖关系导致执行顺序不同等。但我没有在我的问题中明确说明这一点,只给出了一个相当虚拟的示例......
最佳答案
每次运行init
时,所有权重都会随机初始化,因此无法通过这种方式进行比较。如果你真的想比较,我会运行以下代码:
#!/usr/env/bin python
import tensorflow as tf
if __name__ == '__main__':
v = tf.Variable(0)
c = tf.constant(3)
add = tf.add(v, c)
update = tf.assign(v, add)
mul = tf.multiply(add, update)
init = tf.compat.v1.global_variables_initializer()
# method 1
with tf.Session() as sess:
sess.run(init)
print(sess.run(add))
print(sess.run(mul))
print(sess.run([add, mul]))
关于python - sess.run() 多个操作 vs 多个 sess.run(),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57516740/