会话(session):会话拥有并管理Tensorflow程序运行时的所有资源,计算之后需关闭会话回收资源
1 import tensorflow as tf 2 3 #定义计算图 4 tens=tf.constant([1,2,4]) 5 #创建一个会话 6 sess=tf.Session() 7 # 使用这个创建好的会话来得到关心的结果,如调用的sess.run(tens1),得到张量tensl的取值 8 print(sess.run(tens)) 9 # 关闭会话使释放本次运行中使用的资源 10 sess.close()
2.
1 import tensorflow as tf 2 3 node1=tf.constant(3.0,tf.float32,name="node1") 4 node2=tf.constant(4.0,tf.float32,name="node2") 5 6 result=tf.add(node1,node2) 7 #创建一个会话,通过Python的上下文管理器来管理 8 with tf.Session() as sess: 9 # 使用创建好的会话来计算结果 10 print(sess.run(result)) 11 12 # 不需要再调用sess.close()来关闭会话 13 #上下文退出时自动关闭
当python不生成默认对话,需要手动指定,可通过tf.Tensor.eval()计算值
1 import tensorflow as tf 2 import numpy as np 3 4 node1=tf.constant(3.0,tf.float32,name="node1") 5 node2=tf.constant(4.0,tf.float32,name="node2") 6 7 result=tf.add(node1,node2) 8 #当python不生成默认对话,需要手动指定,可通过tf.Tensor.eval()计算值 9 sess=tf.Session() #sess=tf.InteractiveSession() print(result.eval()) sess.close() 等价 10 # with sess.as_default(): 11 # # 使用创建好的会话来计算结果 12 # print(result.eval()) 13 print(sess.run(result)) 14 print(result.eval(session=sess)) 15 # 不需要再调用sess.close()来关闭会话 16 #上下文退出时自动关闭x
变量:Variable
在运行过程中值会改变的单元,在Tensorflow中必须进行初始化操作创建语句:
name_variable=tf.Variable(value,name)
个别变量初始化:init_op=name_variable.initializer()
所有变量初始化:init_op=tf.global_variables_initializer()
sess.run(init_op) #调用会话run命令对参数进行初始化
计算1+2+...+10
1 import tensorflow as tf 2 3 x=tf.Variable(0) 4 y=tf.Variable(0) 5 t=tf.constant(1) 6 7 new_x=tf.add(x,t) 8 update_x=tf.assign(x,new_x) 9 new_y=tf.add(y,x) 10 update_y=tf.assign(y,new_y) #变量更新 11 12 init=tf.global_variables_initializer() 13 14 with tf.Session() as sess: 15 sess.run(init) 16 for i in range(10): 17 sess.run(update_x) 18 print(sess.run(update_y))
占位符:placeholder
在定义时并不知道其数值,只有当真正运行程序时,才由外部输入,如训练数据
tf.placeholder先定义一种数据,其参数为数据的Type和Shape
tf.placeholder(dtype,shape=None,name=None)
Feed提交数据:
placeholder占用的变量必须通过feed_dict参数传递进去
1 import tensorflow as tf 2 3 a=tf.placeholder(tf.float32) 4 b=tf.placeholder(tf.float32) 5 c=tf.multiply(a,b) 6 7 with tf.Session() as sess: 8 result=sess.run(c,feed_dict={a:0.5,b:8.0}) 9 print(result)