TensorFlow学习笔记01
安装
conda install tensorflow
基本使用
- 使用图 (graph) 来表示计算任务.1
- 在被称之为
会话 (Session)
的上下文 (context) 中执行图. - 使用 tensor(张量) 表示数据.
- 通过
变量 (Variable)
维护状态. - 使用 feed 和 fetch 可以为任意的操作(arbitrary operation) 赋值或者从其中获取数据.
综述
- 以图为核心 , 节点为op
- 图必须在
会话
里被启动 - 构建阶段, op 的执行步骤 被描述成一个图. 在执行阶段, 使用会话执行执行图中的 op
example 一个图的例子
构建图
1
2
3
4
5
6
7
8
9
10
11
12
13
14import tensorflow as tf
# 创建一个常量 op, 产生一个 1x2 矩阵. 这个 op 被作为一个节点
# 加到默认图中.
#
# 构造器的返回值代表该常量 op 的返回值.
matrix1 = tf.constant([[3., 3.]])
# 创建另外一个常量 op, 产生一个 2x1 矩阵.
matrix2 = tf.constant([[2.],[2.]])
# 创建一个矩阵乘法 matmul op , 把 'matrix1' 和 'matrix2' 作为输入.
# 返回值 'product' 代表矩阵乘法的结果.
product = tf.matmul(matrix1, matrix2)启动图
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18# 启动默认图.
sess = tf.Session()
# 调用 sess 的 'run()' 方法来执行矩阵乘法 op, 传入 'product' 作为该方法的参数.
# 上面提到, 'product' 代表了矩阵乘法 op 的输出, 传入它是向方法表明, 我们希望取回
# 矩阵乘法 op 的输出.
#
# 整个执行过程是自动化的, 会话负责传递 op 所需的全部输入. op 通常是并发执行的.
#
# 函数调用 'run(product)' 触发了图中三个 op (两个常量 op 和一个矩阵乘法 op) 的执行.
#
# 返回值 'result' 是一个 numpy `ndarray` 对象.
result = sess.run(product)
print result
# ==> [[ 12.]]
# 任务完成, 关闭会话.
sess.close()使用with来使Session对象启动完后自动关闭以释放资源
1
2
3with tf.Session() as sess:
result = sess.run([product])
print result交互式使用
为了便于使用诸如 IPython 之类的 Python 交互环境, 可以使用
InteractiveSession
代替Session
类, 使用Tensor.eval()
和Operation.run()
方法代替Session.run()
1
2
3
4
5
6
7
8
9
10
11
12
13
14# 进入一个交互式 TensorFlow 会话.
import tensorflow as tf
sess = tf.InteractiveSession()
x = tf.Variable([1.0, 2.0])
a = tf.constant([3.0, 3.0])
# 使用初始化器 initializer op 的 run() 方法初始化 'x'
x.initializer.run()
# 增加一个减法 sub op, 从 'x' 减去 'a'. 运行减法 op, 输出结果
sub = tf.sub(x, a)
print sub.eval()
# ==> [-2. -1.]
本文基于tensorflow中文网↩︎