Tensorflow 学习笔记(一)逻辑回归、 tensor、tf.Variable、tf.placeholder、sess 占位符、张量
占位符、张量)
Tensorflow 将程序分成两个独立的部分——计算图的定义、计算图的执行(提高并行能力)。
第一部分:定义
为了构建计算图,需要定义所有要执行的常量、变量和运算操作。
计算图是包含节点和边的网络,张量tensor对象是tensorflow中使用的数据,包括常量 tf.constant、变量tf.Variable和占位符tf.placeholder。
tensor:可理解为一个n维矩阵,所有类型的数据,包括标量(0阶张量)、矢量(一阶张量、矩阵(二阶张量)等都是特殊类型的张量)
变量tf.Variable:
tf.Variable(initializer,name)
//tf.Variable
w = tf.Variable(tf.zeros([self.seq_length,self.config.num_classes]))
b = tf.Variable(tf.zeros([self.config.num_classes]))
变量通常在神经网络中表示权重w和偏置b;
// Save
saver = tf.train.Save()
使用Saver类来保存变量,定义一个Saver操作对象
// global variables initializer
sess.run(tf.global_variables_initializer)
初始化全局变量
占位符tf.placeholder
tf.placeholder(dtype,shape=None,name=None)
dype为占位符的数据类型,并且必须在声明占位符时指定。shape为数据形状,None默认为一维。
// tf.placeholder
self.x = tf.placeholder(tf.float32,[None,self.seq_length]
占位符,为seq_length列,行不定
第二部分:执行(会话)
为了使定义的图生效,首先需要使用tf.Session() 定义一个会话对象sess。然后使用Session类中定义的run:
run(fetches,feed_dict=nONE,options=None,run_metadata)
// Session
session = tf.Session()
session.run(tf.global_variables_initializer())
saver = tf.train.Saver()
saver.restore(sess = session, save_path = config.lr_save_path)
y_pred_cls = session.run(model.y_pred_cls,feed_dict={model.x:data})
return categories[y_pred_cls[0]]
运行结果的值会在fetches中提取,run方法在每次计算图的时候,都会对fetches中相关的张量和操作进行赋值。
请记住,每个会话都需要使用 close() 来明确关闭,而 with 格式可以在运行结束时隐式关闭会话。
Reference:http://c.biancheng.net/view/1886.html