1.TensorFlow介绍
TensorFlow™ 是一个采用数据流图(data flow graphs),用于数值计算的开源软件库。节点(Nodes)在图中表示数学操作,图中的线(edges)则表示在节点间相互联系的多维数据数组,即张量(tensor)。它灵活的架构让你可以在多种平台上展开计算,例如台式计算机中的一个或多个CPU(或GPU),服务器,移动设备等等。TensorFlow 最初由Google大脑小组(隶属于Google机器智能研究机构)的研究员和工程师们开发出来,用于机器学习和深度神经网络方面的研究,但这个系统的通用性使其也可广泛用于其他计算领域。
TensorFlow使用数据流图表示运算操作。数据流图用“结点”(nodes)和“线”(edges)的有向图来描述数学计算。“节点” 一般用来表示施加的数学操作,但也可以表示数据输入(feed in)的起点/输出(push out)的终点,或者是读取/写入持久变量(persistent variable)的终点。“线”表示“节点”之间的输入/输出关系。这些数据“线”可以输运“size可动态调整”的多维数据数组,即“张量”(tensor)。张量从图中流过的直观图像是这个工具取名为“Tensorflow”的原因。一旦输入端的所有张量准备好,节点将被分配到各种计算设备完成异步并行地执行运算。
2.Hello World
按照推荐的教程,完成TensorFlow的安装。
TensorFlow-Windows的安装请参考: 安装教程.
第一部分内容:创建一个名为hello的常量,创建会话(session),运行会话并输出常量。
打开终端,输入命令激活TensorFlow环境:
activate tensorflow
输入python
,并回车,如下图所示:
首先,在python中导入TensorFlow:
import tensorflow as tf
定义一个常量hello
hello = tf.constant('Hello, TensorFlow!')
创建回话
sess = tf.Session()
运行,并输出
print(sess.run(hello))
输出结果:
b'Hello, TensorFlow!'
3.基本操作
TensorFlow的几个概念:
① 图(Graph):用来表示计算任务,也就我们要做的一些操作。
②会话(Session):建立会话,此时会生成一张空图;在会话中添加节点和边,形成一张图,一个会话可以有多个图,通过执行这些图得到结果。如果把每个图看做一个车床,那会话就是一个车间,里面有若干个车床,用来把数据生产成结果。
③Tensor:用来表示数据,是我们的原料。
④ 变量(Variable):用来记录一些数据和状态,是我们的容器。
⑤ feed和fetch:可以为任意的操作(arbitrary operation) 赋值或者从其中获取数据。相当于一些铲子,可以操作数据。
形象的比喻是:把会话看做车间,图看做车床,里面用Tensor做原料,变量做容器,feed和fetch做铲子,把数据加工成我们的结果。
接下来,我们将实现标量的加、乘操作,向量的加、乘操作。
- 标量的加、乘操作:
import tensorflow as tf
# 定义两个占位符a和b,将接收接下来要相加、乘的两个标量2,3
a = tf.placeholder(tf.int16)
b = tf.placeholder(tf.int16)
add = tf.add(a, b)
mul = tf.multiply(a, b)
# 启动计算图
# 其中 add为加操作,mul为乘操作,a和b接收数据,feed_dict将数据输入到计算图中
# sess.run 运行计算图
with tf.Session() as sess:
print ("Addition with variables: %i" % sess.run(add, feed_dict={a: 2, b: 3}))
print ("Multiplication with variables: %i" % sess.run(mul, feed_dict={a: 2, b: 3}))
输出(2加3和2乘3):
Addition with variables: 5
Multiplication with variables: 6
- 向量的加、乘操作:
import tensorflow as tf
#定义两个矩阵常量
matrix1 = tf.constant([[3., 3.]])
matrix2 = tf.constant([[2.],[2.]])
#两个矩阵乘
product = tf.matmul(matrix1, matrix2)
#启动计算图
#sess.run 运行计算图
with tf.Session() as sess:
result = sess.run(product)
print result
输出两个矩阵的乘积:
[[ 12.]]
参考文献:
[1] TensorFlow Examples: github.
[2] 五分钟带你入门TensorFlow: link.
[3] TensorFlow 中文社区 link.
本文内容编辑:费东