Session会话是tensorflow里面的重要机制,tensorflow构建的计算图必须通过Session会话才能执行,如果只是在计算图中定义了图的节点但没有使用Session会话的话,就不能运行该节点。比如在tensorflow中定义了两个矩阵a和b,和一个计算a和b乘积的c节点,如果想要得到a和b的乘积(也就是c节点的运算结果)的话,必须要建立Session会话,并调用Session中的run方法运行c节点才行。
# -*- coding: utf-8 -*-
"""
Created on Mon Apr 3 10:13:21 2017
@author: zhangshaoxing
"""
import tensorflow as tf #导入tensorflow
a=tf.constant([[1,2]]) #定义了一个1×2的矩阵
b=tf.constant([[2],
[4]]) #定义了一个2×1的矩阵
c=tf.matmul(a,b) #两者相乘赋给c节点
#两种方式执行session,第一种比较直观,但比较麻烦,第二种比较方便
#第一种
sess=tf.Session()
result=sess.run(c)
print(result)
sess.close() #关闭session,可有可无,但为了规范起见,还是写上
with tf.Session() as sess:
result=sess.run(c)
print(result) #当代码跳出代码块后自动关闭session
运行结果:
[[10]]