您的位置:首页 > 其它

TensorFlow 学习(二)—— tf.Session() 与 tf.Session().run()

2017-03-13 18:19 549 查看

1. 使用 tf.Session().run() 读取变量的值十分耗时

#CODING: UTF-8
import time
import tensorflow as tf

N = 100000
x = tf.constant([1.])
b = 1.

with tf.Session() as sess:
sess.run(tf.initialize_all_variables())

t1 = time.time()
for _ in range(N):
y = sess.run(x)
print('使用sess.run() 读取变量数据耗时', time.time()-t1)

t2 = time.time()
for _ in range(N):
a = b
print('直接赋值耗时', time.time()-t2)


2. tf.Session().run() 与 Tensor.eval()

假设 x 为 tf 下的一个 Tensor 对象,t.eval() 执行的动作就是 tf.Session().run(t) 。

import tensorflow as tf
x = tf.constant([5.])

print(tf.Session().run(x))

with tf.Session():
print(x.eval())


在第二个例子中,session的作用就象context manager,context manager在with块的生存期,将session作为默认的 session。对简单应用的情形(如单元测试),context manager的方法可以得到更简洁的代码;如果你的代码要处理多个graph和 session,更直白的方式可能是显式调用Session.run()。

session.run()是非常耗时的,千万不要用session.run的方式去取数据

Session.run()和Tensor.eval()区别是什么?
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  Session run eval