4

学习率:控制参数更新的速度。

学习率过小会大大增加优化的时间学习不能过大也不能过小

tensorflow 使用tf.train.exponential_decay函数实现指数衰减法设定学习率

使用这个函数可以先使用大的学习率来得到最优解

learning_rate初始学习率  decay_rate衰减系数 decay_steps 衰减次数

过拟合问题:

为了克服过拟合问题使用正则化,正则化的思想就是在损失函数中加入刻画模型复杂程度的指标

两种正则方式,L1正则化和L2正则化

带L2正则化的损失函数

下图中tf.contrib.layers.11/12_regularizer(lambda)(w)计算正则化的值

lambda正则化项的权重,w需要计算正则化损失的参数

但是当网络层数增加时,正则化的计算很复杂,可读性很差


可以通过集合,计算复杂网络的带正则化的损失函数



滑动平均模型:

在使用随机梯度下降算法中,使用滑动平均模型可以提高最终模型在测试数据上的表现


TesorFLOW 使用tf.train.ExponentialMovingAverage来实现滑动平均模型


在这个函数中,decay衰减率,控制模型更新的速度,


MNIST

将图片转换为一维数组 ,用像素点的深浅表示 1和0

为了方便额使用随机梯度下降算法

input_data.read_data_sets()函数生成的类提供了mnist .train.next_batch函数,从所有训练的数据集中提取一小部分作为训练的batch



对于mnist实验4000轮后,模型在验证数据集上出现波动,说明已经接近了极小值了


开始对一些特征值进行设定

LEARNING_RATE_BASE = 0.8                   # 基础的学习率
LEARNING_RATE_DECAY = 0.99              # 学习率的衰减率
REGULARIZATION_RATE = 0.0001            # 描述模型复杂度的正则化项在损失函数中的系数
TRAINING_STEPS = 20000                  # 训练轮数
MOVING_AVERAGE_DECAY = 0.99  #滑动平均衰减率


一般采用验证数据集来评测模型的效果

对比模型在验证数据集和测试数据集的正确率

在mnist中可以通过,验证数据集判断一个模型的优劣


相比滑动平均与指数衰减的学习率,正则化加入损失函数对于会对模型带来更大的提升

优化交叉熵和正则化的和对于模型更为有利

可以将神经网络的向前传播定义在一个函数

def inference(input_tensor, avg_class, weights1, biases1, weights2, biases2):


对于tf,get_variable()变量名是必填项,根据变量名去创建和获取变量



TensorFlow模型持久化



  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值