您的位置:首页 > 其它

Tensorflow(一)- 初识tensorflow

2017-09-28 00:00 218 查看
Tensorflow是一种机器学习的编程架构,它主要由两种类对象构成,一种是Tensors(张量,可以理解为一个多维的数组),另一种是Operators(也就是所谓操作)。

完成tensorflow的编程步骤如下:

1. 创建带有Tensors和Operations的graph(执行图,计算图),对于深度学习来说就是要创建参数W,b等,然后经过前向后向传播最小化cost的过程。

2. 创建一个Session(会话)

3. 初始化这个Session,即初始化所有的Variables。

4. 运行这个Session,来计算第一步里我们建立的graph。

那么这样说呢,还是有点抽象,我们结合例子来进行讲解。

Practice1

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

第一步创建graph

import numpy as np
import tensorflow as tf

coefficients = 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,它会自动帮我们关闭。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息