TensorFlow入门
- 通过tf.get_default_graph函数可以获取当前默认的计算图。
- p52计算神经网络的前向传播结果需要三部分信息。第一个部分是神经网络的输入,这个输入就是从实体中提取的特征向量。第二个部分为神经网络的连接结构。神经网络是由神经元构成的,神经网络的结构会给出不同神经元之间的输入输出的连接关系。神经网络中的神经元也可以称为节点。最后一个部分是每个神经元中的参数。
- p56在变量定义时给出了变量初始化的方法,但这个方法并没有真正的被运行。使用tf.global_variables_initializer函数实现初始化所有变量的过程。
- p57当构建机器学习模型时,比如神经网络,可以通过变量声明函数中的trainable参数来区分需要优化的参数(比如神经网络中的参数)和其他参数(比如迭代的轮数)。如果生命变量时参数trainable为True,那么这个变量将会被加入到GraphKeys.TRAINABLE_VARIABLES集合。在TensorFlow中可以通过tf.trainable_variables函数得到所有需要优化的参数。TensorFlow中提供的神经网络优化算法会将GraphKeys.TRAINABLE_VARIABLES集合中的变量作为默认的优化对象。
- p57维度是变量的另一个重要的属性。和类型不大一样的是,维度在程序运行中是有可能改变的,但是需要通过设置参数validate_shap=False。
- p58设置神经网络参数的过程就是神经网络的训练过程。
- p59在神经网络优化算法中,最常用的方法是反向传播算法(backpropagation)。反向传播算法实现了一个迭代的过程。在每次迭代的开始,首先需要选取一小部分训练数据,这一小部分数据叫做一个batch。然后,这个batch的样例会通过前向传播算法得到神经网络模型的预测家国。因为训练数据都是有正确答案标注的,所以可以计算出当前神经网络模型的预测答案与正确答案之间的差距。最后,基于预测值和真实值之间的差距,反向传播算法会相应更新神经网络参数的取值,使得这个batch上神经网络模型的预测结果和真实答案更加接近。