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。
那么这样说呢,还是有点抽象,我们结合例子来进行讲解。
首先是我们创建的Tensors,w和x。
tf.Variable就是定义变量。
tf.placeholder也是定义变量,但是和tf.Variable不同,这个变量并没不会进行初始化,它相当于占个位子,然后在运行graph的时候,我们再给它传值,再feed它值。
然后我们创建的Operators,cost、train以及init。这就是我们利用我们定义的参数进行的运算操作。那么这样这个图就建好了。
只需要一行代码就够了,这样我们就创建了一个Session,不过这样的创建方式,在Session结束时,我们需要关闭这个Session
初始化Session,即初始化我们刚刚在graph中创建的变量,为我们的计算做准备,利用这个我们创建的session来跑我们的init,进行变量初始化。
最后一步,利用Session运行graph,这里我们看到了给placeholder的传值,利用feed_dict。也就是把coefficients赋值给placeholder x,然后再调用train进行运算。
这就是Tensorflow的大致流程,最后讲解一下另一种创建Session的方式,也是经常用的一种
这种创建方式不需要我们手动关闭Session,它会自动帮我们关闭。
完成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,它会自动帮我们关闭。
相关文章推荐
- 新手初识Tensorflow
- 初识Tensorflow,基本概念及简单示例
- 【TensorFlow深度学习框架教程三】初识TensorFlow和神经网络
- Tensorflow新手通过PlayGround可视化初识神经网络
- 初识TensorFlow
- 零基础学TensorFlow(二):初识TensorFlow
- TensorFlow学习系列(一):初识TensorFlow
- [深度学习]-初识 TensorFlow (Python)
- Tensorflow学习笔记(一):初识TensorFlow——实现线性回归
- 初识Tensorflow1.0
- 浅入浅出TensorFlow 1 - 初识TensorFlow
- TensorFlow初识
- tensorflow初识
- TensorFlow学习系列(一):初识TensorFlow
- TensorFlow - 最小二乘法
- tensorflow1.1/激活函数可视化
- 中级篇第二期:初识CoreData
- ASP.NET Core 认证与授权[5]:初识授权
- tensorflow实战第三章——用Softmax Regression识别手写数字
- 一文学会用 Tensorflow 搭建神经网络