TensorFlow机器学习项目实战 - (EPUB全文下载)
文件大小:0.17 mb。
文件格式:epub 格式。
书籍内容:
TensorFlow机器学习项目实战
第1章 探索和转换数据
第2章 聚类
第3章 线性回归
第4章 逻辑回归
第5章 简单的前向神经网络
第6章 卷积神经网络
第7章 循环神经网络和LSTM
第8章 深度神经网络
第9章 规模化运行模型——GPU和服务
第10章 库的安装和其他技巧
欢迎来到异步社区!
第1章 探索和转换数据
TensorFlow是一个开源软件库,用于使用数据流图进行数值计算。图中的节点表示数学运算,而图边表示在它们之间传递的多维数据数组(张量,tensor)。
该库包括各种功能,使你能够实现和探索用于图像和文本处理的前沿卷积神经网络(CNN)和循环神经网络(RNN)架构。由于复杂计算以图形的形式表示,TensorFlow可以用作一个框架,使你能够轻松开发自己的模型,并在机器学习领域中使用它们。
它还能够在最不同的环境中运行,从CPU到移动处理器,包括高度并行的GPU计算,并且新的服务架构能够运行所有命名选项的非常复杂的混合,见表1-1。
表1-1 TensorFlow
向量(Tensor)
操作(Operation)
图(Graph)
运行时(CPU、GPU、移动设备等)
1.1 TensorFlow的主要数据结构——张量
TensorFlow基于张量数据管理。张量是数学领域的概念,并且被开发为向量和矩阵的线性代数项的泛化。
具体到TensorFlow中,一个张量就是一个张量类的实例,是绑定了相关运算的一个特定类型的多维数组。
1.1.1 张量的属性——阶、形状和类型
之前已经介绍过,TensorFlow使用张量数据结构来表征所有的数据。所有的张量都有一个静态的类型和动态的维数。所以你能够实时地改变一个张量的内部结构。
张量的另一个属性就是只有张量类型的对象才能在计算图的节点中传递。
我们开始来讨论张量的其他属性(从此处开始,我们所有说的张量都是TensorFlow中的张量对象)。
1.张量的阶
张量的阶(rank)表征了张量的维度,但是跟矩阵的秩(rank)不一样。它表示张量的维度的质量。
阶为1的张量等价于向量,阶为2的向量等价于矩阵。对于一个阶为2的张量,通过t[i, j]就能获取它的每个元素。对于一个阶为3的张量,需要通过t[i, j, k]进行寻址,以此类推,见表1-2。
表1-2 张量的阶
阶
数学实体
代码示例
0
Scalar
scalar = 1000
1
Vector
vector = [2, 8, 3]
2
Matrix
matrix = [[4, 2, 1], [5, 3, 2], [5, 5, 6]]
3
3-tensor
tensor = [[[4], [3], [2]], [[6], [100], [4]], [[5], [1], [4]]]
n
n-tensor
…
在下面这个例子中,我们创建了一个张量,并获取其元素:
>>> import tensorflow as tf
>>> tens1 = tf.constant([[[1,2],[2,3]],[[3,4],[5,6]]])
>>> print sess.run(tens1)[1,1,0]
5
这个张量的阶是3,因为该张量包含的矩阵中的每个元素,都是一个向量。
2.张量的形状
TensorFlow文档使用三个术语来描述张量的维度:阶(rank),形状(shape)和维数(dimension number)。表1-3展示了它们彼此之间的关系。
表1-3 三者之间的关系
阶
形状
维数
例子
0
[]
0-D
4
1
[D0]
1-D
[2]
2
[D0,D1]
2-D
[6,2]
3
[D0,D1,D2]
3-D
[7,3,2]
n
[D0,D1, …, Dn-1]
n-D
形为[D0, D1, … Dn-1]的张量
图1-1的例子中,我们创建了一个三阶张量,并打印出它的形状。
图1-1 三阶张量
3.张量的数据类型
除了维度,张量还有一个确定的数据类型。你可以把表1-4中的任意一个类型指派给向量。
表1-4 张量数据类型
数据类型
Python 类型
描述
DT_FLOAT
tf.float32
32位浮点型
DT_DOUBLE
tf.float64
64位浮点型
DT_INT8
tf.int8
8位有符号整型
DT_INT16
tf.int16
16位有符号整型
DT_INT32
tf.int32
32位有符号整型
DT_INT64
tf.int64
64位有符号整型
DT_UINT8
tf.uint8
8位无符号整型
DT_STRING
tf.string
可变长度的字节数组,每一个张量元素都是一个字节数组
DT_BOOL
tf.bool
布尔型
1.1.2 创建新的张量
我们既可以创建我们自己的张量,也可以从著名的Python库numpy中继承。下面的例子中,我们创建了一些numpy数组,并对它们进行了简单的数学操作:
import tensorflow as tf
import numpy as np
x = tf.constant(np.random.rand(32).astype(np.float32))
y= tf.constant ([1,2,3])
1.从numpy数组到TensorFlow张量和从TensorFlow张量到numpy数组
TensorFlow与numpy是可互操作的,通常调用eval()函数会返回numpy对象。该函数可以用作标准数值工具。
我们一定要注意张量对象只是一个操作结果的符号化句柄,所以它并不持有该操作的结果。因此,我们必须使用 ............
以上为书籍内容预览,如需阅读全文内容请下载EPUB源文件,祝您阅读愉快。
书云 Open E-Library » TensorFlow机器学习项目实战 - (EPUB全文下载)