tensorflow-Session

1. tensorflow中的Session

  • graph:定义一个计算图,不保存任何值,只是定义了所用代码所规定的操作
  • session:允许计算图或者图的一部分,为这个分配资源并且保存中间结果的值和变量

1.1 定义图

   graph = tf.Graph()
    with graph.as_default():
        variable = tf.Variable(42, name='foo')
        initialize = tf.initialize_all_variables()
        assign = variable.assign(13)

  定义一个graph通过一个变量和三个操作:变量总是返回他的当前值,initialize 初始化变量值为42,assign 给变量赋新值为13.

1.2 在Session中执行计算

  给graph创建一个session来运行图中定义的三个操作中的任意一个,session会分配内存去存储变量的当前值

with tf.Session(graph=graph) as sess:
   sess.run(initialize)
   sess.run(assign)
   print(sess.run(variable))

  变量的值仅在一个session中有效,如果我们尝试在session结束后查询变量值,tensorflow将会报错,因为变量在此时没有初始化.

with tf.Session(graph=graph) as sess:
    print(sess.run(variable))
  # Error: Attempting to use uninitialized value foo

  一个graph也能使用多个session,但是必须再一次初始化变量,新session的值将会完全的独立于之前的session的

with tf.Session(graph=graph) as sess:
    sess.run(initialize)
    print(sess.run(variable))
  # Output: 42

2. 加载graph中的所有tensor的name

sess=tf.Session()
sess.run(tf.global_variables_initializer())
saver = tf.train.import_meta_graph( 'checkpoints/lenet.ckpt.meta')
saver.restore(sess, tf.train.latest_checkpoint('checkpoints/'))
graph = tf.get_default_graph()
graph.get_operations()

  
  
  

你可能感兴趣的:(tensorflow-Session)