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 相关文章推荐
ansible作为python模块库使用的方法实例
Jan 17 Python
Python中struct模块对字节流/二进制流的操作教程
Jan 21 Python
python实现简易云音乐播放器
Jan 04 Python
在cmd中运行.py文件: python的操作步骤
May 12 Python
Win10下python3.5和python2.7环境变量配置教程
Sep 18 Python
使用python判断你是青少年还是老年人
Nov 29 Python
Django框架实现的简单分页功能示例
Dec 04 Python
详解Django定时任务模块设计与实践
Jul 24 Python
关于pycharm中pip版本10.0无法使用的解决办法
Oct 10 Python
Python numpy.zero() 初始化矩阵实例
Nov 27 Python
python 统计文件中的字符串数目示例
Dec 24 Python
Python本地及虚拟解释器配置过程解析
Oct 13 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 静态化实现代码
2009/03/20 PHP
PHP代码保护--Zend Guard的使用详解
2013/06/03 PHP
php引用传值实例详解学习
2013/11/06 PHP
微信营销平台系统?刮刮乐的开发
2014/06/10 PHP
ThinkPHP实现将本地文件打包成zip下载
2014/06/26 PHP
变量在 PHP7 内部的实现(二)
2015/12/21 PHP
Laravel框架模板加载,分配变量及简单路由功能示例
2018/06/11 PHP
Extjs中DisplayField的日期或者数字格式化扩展
2010/09/03 Javascript
jquery获取iframe中的dom对象(两种方法)
2013/07/02 Javascript
html页面显示年月日时分秒和星期几的两种方式
2013/08/20 Javascript
ANGULARJS中用NG-BIND指令实现单向绑定的例子
2014/12/08 Javascript
详解JavaScript逻辑Not运算符
2015/12/04 Javascript
javascript 动态样式添加的简单实现
2016/10/11 Javascript
NodeJs使用Mysql模块实现事务处理实例
2017/05/31 NodeJs
浅谈mint-ui loadmore组件注意的问题
2017/11/08 Javascript
vue实现图片加载完成前的loading组件方法
2018/02/05 Javascript
微信小程序vant弹窗组件的实现方式
2020/02/21 Javascript
[04:52]DOTA2亚洲邀请赛附加赛 TOP10精彩集锦
2015/01/29 DOTA
[36:16]完美世界DOTA2联赛PWL S3 access vs Rebirth 第一场 12.19
2020/12/24 DOTA
Python yield 小结和实例
2014/04/25 Python
python网络编程学习笔记(六):Web客户端访问
2014/06/09 Python
Win7下搭建python开发环境图文教程(安装Python、pip、解释器)
2016/05/17 Python
Python 正则表达式的高级用法
2016/12/04 Python
Python网络爬虫出现乱码问题的解决方法
2017/01/05 Python
python中安装模块包版本冲突问题的解决
2017/05/02 Python
在pycharm中显示python画的图方法
2019/08/31 Python
python 线性回归分析模型检验标准--拟合优度详解
2020/02/24 Python
python GUI库图形界面开发之PyQt5输入对话框QInputDialog详细使用方法与实例
2020/02/27 Python
HTML5 Canvas——用路径描画线条实例介绍
2013/06/09 HTML / CSS
美国独家设计师眼镜在线光学商店:Glasses Gallery
2017/12/28 全球购物
酒吧副总经理岗位职责
2013/12/10 职场文书
个人课题方案
2014/05/08 职场文书
信用卡工资证明格式
2014/09/13 职场文书
幼儿园教师求职信
2015/03/20 职场文书
辞职信格式范文
2015/05/13 职场文书
Java中的Kafka为什么性能这么快及4大核心详析
2022/09/23 Java/Android