Tensorflow(一)- 初识tensorflow

来源:互联网 发布:淘宝做任务送礼物 编辑:程序博客网 时间:2024/05/18 02:54

Tensorflow是一种机器学习的编程架构,它主要由两种类对象构成,一种是Tensors(张量,可以理解为一个多维的数组),另一种是Operators(也就是所谓操作)。
完成tensorflow的编程步骤如下:
1. 创建带有Tensors和Operations的graph(执行图,计算图),对于深度学习来说就是要创建参数W,b等,然后经过前向后向传播最小化cost的过程。
2. 创建一个Session(会话)
3. 初始化这个Session,即初始化所有的Variables。
4. 运行这个Session,来计算第一步里我们建立的graph。
那么这样说呢,还是有点抽象,我们结合例子来进行讲解。

Practice1

首先我们用一个简单的例子来说明。我们按照上面给的步骤来,

第一步创建graph

import numpy as npimport tensorflow as tfcoefficients = np.array([[1.],[-20.],[100.]])w = tf.Variable(0, dtype = tf.float32)x = tf.placeholder(tf.float32, [3,1])cost = x[0][0]*w**2 + x[1][0]*w + x[2][0]train = tf.train.GradientDescentOptimizer(0.01).minimize(cost)init = tf.global_variables_initializer()

首先是我们创建的Tensors,w和x。
tf.Variable就是定义变量。
tf.placeholder也是定义变量,但是和tf.Variable不同,这个变量并没不会进行初始化,它相当于占个位子,然后在运行graph的时候,我们再给它传值,再feed它值。
然后我们创建的Operators,cost、train以及init。这就是我们利用我们定义的参数进行的运算操作。那么这样这个图就建好了。

第二步创建Session

session = tf.Session()

只需要一行代码就够了,这样我们就创建了一个Session,不过这样的创建方式,在Session结束时,我们需要关闭这个Session

session.close()

第三步初始化Session

session.run(init)

初始化Session,即初始化我们刚刚在graph中创建的变量,为我们的计算做准备,利用这个我们创建的session来跑我们的init,进行变量初始化。

第四步运行graph

session.run(train, feed_dict={x:coefficients})

最后一步,利用Session运行graph,这里我们看到了给placeholder的传值,利用feed_dict。也就是把coefficients赋值给placeholder x,然后再调用train进行运算。

这就是Tensorflow的大致流程,最后讲解一下另一种创建Session的方式,也是经常用的一种

with tf.Session() as sess:     # run the variables initialization (if needed), run the operations    result = sess.run(..., feed_dict = {...})    # This takes care of closing the session for you :)

这种创建方式不需要我们手动关闭Session,它会自动帮我们关闭。

原创粉丝点击