今天在家学习了下TensorFlow,虽然背后的数学知识浅薄,  但能感觉到, 好强大.再导入tensorflow包的时候,就已经有了一个默认的隐藏图.
    可以直接调用函数去查看. 
1 2 3 4 
  | import tensorflow as tf graph = tf.get_default_graph() print graph []  
  | 
 
这个时候我们可以创建一个常量,如
1 
  | _input = tf.constant(1.0) 
  | 
 
这个常量会以一个节点的形式存在,也就是图里面的一个op,python的变量名_input间接引用这个op
调用下面的函数得到op
1 2 
  | op = graph.get_operations() print op 
  | 
 
如果我们直接打印_input, 会得到一个shape(维度)为空的的32位的浮点型张量,这意味着什么呢?意味着只有一个数字.
那怎么才能打印出这个_input的值呢?
我们就要创建一个会话使得图的ops能够被执行,而且明确要求”运行”这个_input.如:
1 2 
  | sess =  tf.Session() print sess.run(_input) 
  | 
 
下面我在初级入门教程上学到了一个如何运用tensorflow寻找目标函数参数的方法.
首先.我们的这个模型是线性回归的模型. 所以模型的参数定义如下,浮点型,初始值为0.3和-0.3
1 2 
  | W = tf.Variable([.3],tf.float32)  b = tf.Variable([-.3],tf.float32) 
  | 
 
接着给x一个placeholder
1 2 3 4 
  | x = tf.placeholder(tf.float32) linear_model = W * x + b 
  | 
 
然后为了确认我们的模型与真实的数据集之间的差异,即系统误差. 所以我们需要一个loss function.如下
1 2 
  | y = tf.placeholder(tf.float32)  # y占位符 loss = tf.reduce_sum(tf.square(linear_model - y)) #loss函数 
  | 
 
我们的目标是就是尽可能的减少系统误差,让这个误差越小越好.,当然如果误差为负,就不是越小越好了.实际输出(linear_model)和期望输出(y)的平方差来定义误差的值。
然后我们用优化器(optimizer)。使用梯度下降优化器使我们能够按照误差的导数(derivative)来更新权重,这里背后的原理—梯度下降, 我也是一知半解..
1 2 
  | optimizer = tf.train.GradientDescentOptimizer(0.01)   train = optimizer.minimize(loss)  
  | 
 
接着我们建立我们的训练数据
1 2 3 4 
  | x_train = [1,2,3,4]   y_train = [0,-1,-2,-3]  train_data = {x:x_train,y:y_train}  
  | 
 
初始化变量
1 2 3 4 5 6 7 
  | init = tf.global_variables_initializer()   with tf.Session() as sess:      sess.run(init)         for i in range(1000):         sess.run(train,train_data)      curr_W, curr_b, curr_loss = sess.run([W, b, loss], train_data)      print "W: %s b: %s loss: %s" % (curr_W, curr_b, curr_loss)  
  | 
 
下面是完整代码:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 
  | import tensorflow as tf import numpy as np def learn_tf_train_api():     """     The completed trainable linear regression model is shown here:     """          W = tf.Variable([.3],tf.float32)     b = tf.Variable([-.3],tf.float32)          x = tf.placeholder(tf.float32)     linear_model = W * x + b     y = tf.placeholder(tf.float32)          loss = tf.reduce_sum(tf.square(linear_model - y))          optimizer = tf.train.GradientDescentOptimizer(0.01)     train = optimizer.minimize(loss)          x_train = [1,2,3,4]     y_train = [0,-1,-2,-3]     train_data = {x:x_train,y:y_train}          init = tf.global_variables_initializer()     with tf.Session() as sess:         sess.run(init)             for i in range(1000):             sess.run(train,train_data)                  curr_W, curr_b, curr_loss = sess.run([W, b, loss], train_data)         print "W: %s b: %s loss: %s" % (curr_W, curr_b, curr_loss)  if __name__ == '__main__':     learn_tf_train_api() 
  | 
 
继续探索中,希望以后对我的工作能有所帮助.