tensorflow 恢复指定层与不同层指定不同学习率的方法


Posted in Python onJuly 26, 2018

如下所示:

#tensorflow 中从ckpt文件中恢复指定的层或将指定的层不进行恢复:
#tensorflow 中不同的layer指定不同的学习率
 
with tf.Graph().as_default():
		#存放的是需要恢复的层参数
	 variables_to_restore = []
	 #存放的是需要训练的层参数名,这里是没恢复的需要进行重新训练,实际上恢复了的参数也可以训练
  variables_to_train = []
  for var in slim.get_model_variables():
   excluded = False
   for exclusion in fine_tune_layers:
   #比如fine tune layer中包含logits,bottleneck
    if var.op.name.startswith(exclusion):
     excluded = True
     break
   if not excluded:
    variables_to_restore.append(var)
    #print('var to restore :',var)
   else:
    variables_to_train.append(var)
    #print('var to train: ',var)
 
 
  #这里省略掉一些步骤,进入训练步骤:
  #将variables_to_train,需要训练的参数给optimizer 的compute_gradients函数
  grads = opt.compute_gradients(total_loss, variables_to_train)
  #这个函数将只计算variables_to_train中的梯度
  #然后将梯度进行应用:
  apply_gradient_op = opt.apply_gradients(grads, global_step=global_step)
  #也可以直接调用opt.minimize(total_loss,variables_to_train)
  #minimize只是将compute_gradients与apply_gradients封装成了一个函数,实际上还是调用的这两个函数
  #如果在梯度里面不同的参数需要不同的学习率,那么可以:
 
  capped_grads_and_vars = []#[(MyCapper(gv[0]), gv[1]) for gv in grads_and_vars]
  #update_gradient_vars是需要更新的参数,使用的是全局学习率
  #对于不是update_gradient_vars的参数,将其梯度更新乘以0.0001,使用基本上不动
 	for grad in grads:
 		for update_vars in update_gradient_vars:
 			if grad[1]==update_vars:
 				capped_grads_and_vars.append((grad[0],grad[1]))
 			else:
 				capped_grads_and_vars.append((0.0001*grad[0],grad[1]))
 
 	apply_gradient_op = opt.apply_gradients(capped_grads_and_vars, global_step=global_step)
 
 	#在恢复模型时:
 
  with sess.as_default():
 
   if pretrained_model:
    print('Restoring pretrained model: %s' % pretrained_model)
    init_fn = slim.assign_from_checkpoint_fn(
    pretrained_model,
    variables_to_restore)
    init_fn(sess)
   #这样就将指定的层参数没有恢复

以上这篇tensorflow 恢复指定层与不同层指定不同学习率的方法就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持三水点靠木。

Python 相关文章推荐
python Pandas 读取txt表格的实例
Apr 29 Python
详解用TensorFlow实现逻辑回归算法
May 02 Python
JSON文件及Python对JSON文件的读写操作
Oct 07 Python
python3 中文乱码与默认编码格式设定方法
Oct 31 Python
pyqt5实现绘制ui,列表窗口,滚动窗口显示图片的方法
Jun 20 Python
python opencv 二值化 计算白色像素点的实例
Jul 03 Python
python字典的常用方法总结
Jul 31 Python
详解python中__name__的意义以及作用
Aug 07 Python
python输出带颜色字体实例方法
Sep 01 Python
tensorflow入门:TFRecordDataset变长数据的batch读取详解
Jan 20 Python
keras 获取某层的输入/输出 tensor 尺寸操作
Jun 10 Python
教你用python实现一个无界面的小型图书管理系统
May 21 Python
kaggle+mnist实现手写字体识别
Jul 26 #Python
解决tensorflow模型参数保存和加载的问题
Jul 26 #Python
解决tensorflow1.x版本加载saver.restore目录报错的问题
Jul 26 #Python
Flask web开发处理POST请求实现(登录案例)
Jul 26 #Python
基于tensorflow加载部分层的方法
Jul 26 #Python
利用python画出折线图
Jul 26 #Python
浅谈flask源码之请求过程
Jul 26 #Python
You might like
php 5.3.5安装memcache注意事项小结
2011/04/12 PHP
Mootools 1.2教程 排序类和方法简介
2009/09/15 Javascript
基于JQuery的浮动DIV显示提示信息并自动隐藏
2011/02/11 Javascript
iframe的onload在Chrome/Opera中执行两次Bug的解决方法
2011/03/17 Javascript
jquery固定底网站底部菜单效果
2013/08/13 Javascript
jquery等宽输出文字插件使用介绍
2013/09/18 Javascript
使用CSS和jQuery模拟select并附提交后取得数据的代码
2013/10/18 Javascript
jQuery toggleClass应用实例(附效果图)
2014/04/06 Javascript
jq实现左侧显示图片右侧文字滑动切换效果
2015/08/04 Javascript
jQuery简单实现title提示效果示例
2016/08/01 Javascript
Java中int与integer的区别(基本数据类型与引用数据类型)
2017/02/19 Javascript
jQuery插件HighCharts绘制2D圆环图效果示例【附demo源码下载】
2017/03/09 Javascript
基于JavaScript实现无缝滚动效果
2017/07/21 Javascript
jQuery实现checkbox即点即改批量删除及中间遇到的坑
2017/11/11 jQuery
vue2.0使用v-for循环制作多级嵌套菜单栏
2018/06/25 Javascript
在小程序中集成redux/immutable/thunk第三方库的方法
2018/08/12 Javascript
浅谈react性能优化的方法
2018/09/05 Javascript
vue.js编译时给生成的文件增加版本号
2018/09/17 Javascript
在vue项目中,将juery设置为全局变量的方法
2018/09/25 Javascript
angularJs select绑定的model取不到值的解决方法
2018/10/08 Javascript
Jquery的Ajax技术使用方法
2019/01/21 jQuery
解决vue自定义全局消息框组件问题
2019/11/22 Javascript
js实现带有动画的返回顶部
2020/08/09 Javascript
JavaScript中clientWidth,offsetWidth,scrollWidth的区别
2021/01/25 Javascript
在Django的模型中执行原始SQL查询的方法
2015/07/21 Python
python发送邮件功能实现代码
2016/07/15 Python
windows下ipython的安装与使用详解
2016/10/20 Python
Python使用微信SDK实现的微信支付功能示例
2017/06/30 Python
python 3.5实现检测路由器流量并写入txt的方法实例
2017/12/17 Python
Python3实现取图片中特定的像素替换指定的颜色示例
2019/01/24 Python
keras 获取某层的输入/输出 tensor 尺寸操作
2020/06/10 Python
CSS3动画特效在活动页中的应用
2020/01/21 HTML / CSS
解析HTML5的存储功能和web SQL的相关操作方法
2016/02/19 HTML / CSS
高二地理教学反思
2014/01/24 职场文书
元旦晚会邀请函
2014/02/01 职场文书
教师竞聘演讲稿
2014/05/16 职场文书