- TensorFlow特殊的张量计算引擎使得TensorFlow能够很好的满足机器学习的计算需要,从2015年开始发起
- 本书基于TensorFlow0.12+和python3.0+
- 环境安装要求
- pip install -r requirements.txt
- TensorFlow计算的一般流程
- 生成或者导入数据generate or import data
- 所有的机器学习算法都需要数据,在这里我们可以自己生成数据或者使用外部数据,有的时候可以更好地依赖于生成的数据,因为我们想知道期望的结果,有的时候我们会选择使用公开的数据集。
- 转换或者是正则化数据 transform or normalize data
- 有的时候数据并不是TensorFlow能够接受的期望的形式,比如说数据的维度不对或者是数据的类型不对,所以我们必须要在使用之前对数据进行转换处理,大部分的算法需要对数据进行正则化处理,TensorFlow提供了可以正则化处理数据的功能
- data=tf.nn.batch_norm_with_global_normalization(...)
- 有的时候数据并不是TensorFlow能够接受的期望的形式,比如说数据的维度不对或者是数据的类型不对,所以我们必须要在使用之前对数据进行转换处理,大部分的算法需要对数据进行正则化处理,TensorFlow提供了可以正则化处理数据的功能
- 设置算法的参数set algorithm parameters
- 我们的算法通常在整个处理过程当中都需要参数,比如说:迭代次数,学习率或则我们选择的其他的固定参数,我们应该以一种良好的形式去初始化那些所有的参数,以便方便我们能够方便用户可以很好的使用它们。
- learning_rate=0.01 iterations=10000
- 我们的算法通常在整个处理过程当中都需要参数,比如说:迭代次数,学习率或则我们选择的其他的固定参数,我们应该以一种良好的形式去初始化那些所有的参数,以便方便我们能够方便用户可以很好的使用它们。
- 初始化变量和占位符initialize variables and placeholders
- tensorflow依赖于用户告诉它们如何进行更改,TensorFlow会在优化过程当中不断的更新变量以减小损失函数,为了做到这些,所以我们需要给占位符喂数据,我们需要初始化所有的那些变量和参数,给以适当的数据类型type和大小size,所以使TensorFlow知道接下来应该怎么做,
- a_var=tf.constant(42)
- x_input=tf.placeholder(tf.float32,[None,input_size])
- y_input=tf.placeholder(tf.float32,[None,num_class])
- tensorflow依赖于用户告诉它们如何进行更改,TensorFlow会在优化过程当中不断的更新变量以减小损失函数,为了做到这些,所以我们需要给占位符喂数据,我们需要初始化所有的那些变量和参数,给以适当的数据类型type和大小size,所以使TensorFlow知道接下来应该怎么做,
- 定义模型结构Define Model Structure
- 当我们有了数据,初始化了所有的变量和占位符,接下来我们就应该定义模型结构了,通过构建一个计算图computational graph,我们告诉TensorFlow应该在变量和参数上面执行什么操作以便能够达到我们期望的目的,接下来就计算图将会进行更多的讨论
- y_pred=tf.add(tf.mul(x_input,weights_matrix),b_matrix)
- 当我们有了数据,初始化了所有的变量和占位符,接下来我们就应该定义模型结构了,通过构建一个计算图computational graph,我们告诉TensorFlow应该在变量和参数上面执行什么操作以便能够达到我们期望的目的,接下来就计算图将会进行更多的讨论
- 定义损失函数declare loss functions
- 定义了模型结构之后,我们开始计算输出,这就是我们为什么定义了损失函数,损失函数的重要之处在于能够告诉我们预期值距离实际值的距离,更多不同的期望函数在接下来会有介绍
- loss=tf.reduce_mean(tf.square(y_actual-y_pred))
- 定义了模型结构之后,我们开始计算输出,这就是我们为什么定义了损失函数,损失函数的重要之处在于能够告诉我们预期值距离实际值的距离,更多不同的期望函数在接下来会有介绍
- 初始化并且开始训练模型initialize and train model
- 现在我们已经具备了一切,然后开始创建一个实例或者我们的计算图通过给计算图喂入数据,然后让TensorFlow更好的能够改变变量和进行预测我们的训练数据,下面是初始化计算图的一种方式
- with tf,Session(graph=graph) as session:
- session.run()
- with tf,Session(graph=graph) as session:
- 我们可以使用另外一种方式
- session=tf.Session(graph=graph) session.run(....)
- 现在我们已经具备了一切,然后开始创建一个实例或者我们的计算图通过给计算图喂入数据,然后让TensorFlow更好的能够改变变量和进行预测我们的训练数据,下面是初始化计算图的一种方式
- (可选)评估模型 Evaluate the model
- 当我们构建训练完我们的模型之后,我们通过使用新的数据按照一些特定标准来评估我们的模型
- (可选)预测新的结果
- 生成或者导入数据generate or import data
- 总结Summary
- 总体来说,在TensorFlow当中可以设计为如下的循环结构
-
- 通过占位符喂入数据,
- 估算计算图的输出
- 通过损失函数计算期望结果
- 使用反向自动求导更新模型变量
- 重复以上过程直到满足某一个特定的标准
-
- (完)
附件列表