TensorFlow笔记-07-神经网络优化-学习率,滑动平均 学习率 学习率 learning_rate: 表示了每次参数更新的幅度大小.学习率过大,会导致待优化的参数在最小值附近波动,不收敛:学习率过小,会导致待优化的参数收敛缓慢 在训练过程中,参数的更新向着损失函数梯度下降的方向 参数的更新公式为: wn+1 = wn - learning_rate▽ 假设损失函数 loss = (w + 1)2.梯度是损失函数 loss 的导数为 ▽ = 2w + 2 .如参数初值为5,学习率为 0.2…
TensorFlow笔记-06-神经网络优化-损失函数,自定义损失函数,交叉熵 神经元模型:用数学公式比表示为:f(Σi xi*wi + b), f为激活函数 神经网络 是以神经元为基本单位构成的 激活函数:引入非线性激活因素,提高模型的表达能力 常用的激活函数有relu.sigmoid.tanh等 (1)激活函数relu:在Tensorflow中,用tf.nn.relu()表示 (2)激活函数sigmoid:在Tensorflow中,用tf.nn.sigmoid()表示 (3)激活函数tanh…
import tensorflow as tf from tensorflow.examples.tutorials.mnist import input_data INPUT_NODE = 784 # 输入节点 OUTPUT_NODE = 10 # 输出节点 LAYER1_NODE = 500 # 隐藏层数 BATCH_SIZE = 100 # 每次batch打包的样本个数 # 模型相关的参数 LEARNING_RATE_BASE = 0.8 LEARNING_RATE_DECAY = 0.9…
TensorFlow笔记-08-过拟合,正则化,matplotlib 区分红蓝点 TensorFlow笔记-07-神经网络优化-学习率,滑动平均 TensorFlow笔记-06-神经网络优化-损失函数,自定义损失函数,交叉熵 TensorFlow笔记-05-反向传播,搭建神经网络的八股 TensorFlow笔记-04-神经网络的实现过程,前向传播 TensorFlow笔记-03-张量,计算图,会话 TensorFlow笔记-02-Windows下搭建TensorFlow环境(win版非虚拟机)…
tensorflow使用tf.train.ExponentialMovingAverage实现滑动平均模型,在使用随机梯度下降方法训练神经网络时候,使用这个模型可以增强模型的鲁棒性(robust),可以在一定程度上提高模型在测试数据集上的表现. 滑动平均模型为每个变量维护一个影子变量,其初始值是变量的初始值,每次变量更新时,影子变量的值会更新为: shadow_variable = shadow_variable * decay + (1-decay) * variable 其中shadow_v…
1.正则化缓解过拟合 正则化在损失函数中引入模型复杂度指标,利用给w加权值,弱化了训练数据的噪声 一般不会正则化b. 2.matplotlib.pyplot 3.搭建模块化的神经网络八股: 前向传播就是搭建网络,设计网络结构(forward.py) def forward(x,regularizer): #regularizer是正则化权重 w= b= y= return y def get_weight(shape,regularizer): w=tf.Variable()#给w赋初值 tf.…
1.学习率的设置既不能太小,又不能太大,解决方法:使用指数衰减法 例如: 假设我们要最小化函数 y=x2y=x2, 选择初始点 x0=5x0=5  1. 学习率为1的时候,x在5和-5之间震荡. import tensorflow as tf TRAINING_STEPS = 10 LEARNING_RATE = 1 x = tf.Variable(tf.constant(5, dtype=tf.float32), name="x") y = tf.square(x) train_op…
tensorflow提供的tf.train.ExponentialMovingAverage 类利用指数衰减维持变量的滑动平均. 当训练模型的时候,保持训练参数的滑动平均是非常有益的.评估时使用取平均后的参数有时会产生比使用最终训练好的参数值好很多的效果.方法apply()会添加被训练变量的影子副本和在影子副本中维持被训练变量的滑动平均的若干操作.该方法在创建训练模型时使用.那些保持维持滑动平均的操作(ops)一般会在每个训练步骤之后被执行.average()和average_name()方法分…
模型:双层神经网络 [一层隐藏层.一层输出层]隐藏层输出用relu函数,输出层输出用softmax函数 过程: 设置参数 滑动平均的辅助函数 训练函数 x,y的占位,w1,b1,w2,b2的初始化 前向传播[y = w * x +b,w和b采用滑动平均更新] 后向传播[计算loss(包括交叉熵和正则化loss),采用GD更新参数(学习率使用指数衰减)] 迭代训练数据 代码: #参数设置 #输入.隐藏层神经元数.输出 samples = 55000 input_size = 784 output_…