tensorflow——session与graph

sess会话与graph的关系
Graph可以创建多个数据流图,达到协同工作的目的;session会话相当于一个默认的流图,即一个计算流图。
一个完整的Session会话包含:
1.数据流图——计算的载体(就相当于一张白纸)
2.操作对象——基础数据(比如常量:1 又或者变量:a=5)
3.op——计算操作(相当于计算方法,比如:y=a+b)

可以把会话想象成生活中在草稿纸上计算公式的过程,首先得有一张纸(即数据流图),然后还得有基础数据(操作对象),
最后还有计算公式(op)把数据关联起来,然后多个计算公式按一定的顺序串起来,计算得到最终结果。

简单来说,会话就是在一个载体上进行计算的过程,定义多个Graph则可以同时进行多个计算。


代码实现:

# -*- coding: utf-8 -*-  
import tensorflow as tf
import numpy as np

#定义计算图g1
g1 = tf.Graph()   #定义计算图
with g1.as_default():
    A = tf.constant([[2,3],[4,5]])   #定义矩阵A
    B = tf.constant([[5,6],[7,8]])   #定义矩阵B

    #定义op
    c1 = tf.matmul(A,B)    #矩阵相乘
    c2 = np.dot(A,B)       #矩阵乘积


#定义计算图g2
g2 = tf.Graph()   #定义计算图
with g2.as_default():
    A2 = tf.constant(5)   #定义矩阵A

#定义会话,选择计算图:g1
with tf.Session(graph=g1) as sess1:  
    print("矩阵相乘得到:")
    print(sess1.run(c1))
    print("矩阵的乘积:")
    print(sess1.run(c2))

with tf.Session(graph=g2) as sess2:
	print("第二个计算图的A2:",sess2.run(A2))


结果如下:
在这里插入图片描述
第一个计算图g1中打印了矩阵的普通相乘(相同位置的元素相乘)和矩阵乘积(行乘列);
第二个g2输出了定义在g2中的一个常量: 5。

猜你喜欢

转载自blog.csdn.net/gm_Ergou/article/details/93768638