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

来源:互联网 发布:快速移动文件软件 编辑:程序博客网 时间:2024/06/05 06:00

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

#CODING: UTF-8import timeimport tensorflow as tfN = 100000x = 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 tfx = 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()区别是什么?
0 0
原创粉丝点击