graph和sess关系
graph
图,是用来定义网络结构,
图中定义的计算流程必须用tf的语言工具。np的还不行
一个py文件程序中可以有多个图,默认的是放在默认图中了。
在下面with块中的是graph1图的结构
graph1=tf.Graph()
with graph1.as_default():
x2=tf.Variable(2)#这样才是在graph1中
session
会话,这个部分是用于执行计算具体数据的。
一个session里面可以有很多的图。
一个py文件里面可以有很多个session,多起几个下面的with块就行了
with tf.Session() as sess:
pass
往往我们不会构建多个graph和session
两者之间关系
Graph好比是灌溉的渠沟、管道,里面决定了水流(张量)的方向以及对水流(张量)的处理。graph是浇地前对渠沟的挖掘修缮。
Session好比是对某一块地进行灌溉。从源头输入、提供水源,选择好输出。Session是浇地时水源的输入和具体哪个畦需要灌溉。
张量、变量、常量
创建启动会话sess
import tensorflow as tf
# 创建一个常量
m1 = tf.constant([[3,3]])
# 创建一个常量
m2 = tf.constant([[2],[3]])
# 矩阵乘法op
product = tf.matmul(m1, m2)
print(product)
#第一种方法
# 定义会话
sess = tf.Session()
# 调用sess中的run方法来执行矩阵乘法op
result = sess.run(product)
print(result)
sess.close()
#第二种方法
with tf.Session() as sess:
# 调用sess中的run方法来执行矩阵乘法op
result = sess.run(product)
print(result)
init = tf.global_variables_initializer()
init2 = tf.local_variables_initializer()
with tf.Session() as sess:
init.run()
sess.run(init2)
local变量和global变量的初始化