tensorflow saver_在tensorflow中设置梯度衰减

v2-620d5c25592b07e2c3b01b207e0cad04_1440w.jpg?source=172ae18b

我是从keras入门深度学习的,第一个用的demo是keras实现的yolov3,代码很好懂(其实也不是很好懂,第一次也搞了很久才弄懂)

然后是做的车牌识别,用了tiny-yolo来检测车牌位置,当时训练有4w张图片,用了一天来训练,当时觉得时间可能就是这么长,也不懂GPU训练的时候GPU利用率,所以不怎么在意,后来随着项目图片片的增多,训练时间越来越大,受不了了,看了一片文章才注意到GPU利用率的问题.想到要用tensorflow原生的api去训练,比如用tf.data.dataset

就找到了这个tensorflow原生实现yolo的项目,在训练的时候发现他没加梯度衰减,训练了一段时间total loss下不去了,所以加了一个梯度衰减。想写一下文章,小白的第一篇文章哈哈哈,大神别喷我的内容太简单

YunYang1994/tensorflow-yolov3​github.com
v2-1cb835d2c754277ae6d562d18a19db6f_ipico.jpg

他好像改了train.py

原来是这样的

import 

然后我发现没有梯度下降,所以就找了怎么实现

实现如下
optimizer = tf.train.AdamOptimizer(LR)
改为
global_step = tf.Variable(0, trainable=False)
learning_rate = tf.train.exponential_decay(LR,100,0.93,staircase=True,global_step=global_step)
optimizer = tf.train.AdamOptimizer(learning_rate)

learningrate 是梯度的类,LR是初始梯度,100是每一百次初始梯度乘以衰减度,这里是第三个参数0.93代表了衰减度,globalstep_step = global_step是一定要加的,不然梯度一直保持了初始梯度。

最后加个打印

tf.summary.scalar('learning_rate',learning_rate)

就可以爽快的去训练了

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值