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变量和数据类型详解
Feb 15 Python
详谈python read readline readlines的区别
Sep 22 Python
python的Crypto模块实现AES加密实例代码
Jan 22 Python
python写入并获取剪切板内容的实例
May 31 Python
python selenium 获取标签的属性值、内容、状态方法
Jun 22 Python
Pycharm2017版本设置启动时默认自动打开项目的方法
Oct 29 Python
Python设计模式之建造者模式实例详解
Jan 17 Python
使用Python向DataFrame中指定位置添加一列或多列的方法
Jan 29 Python
python 发送json数据操作实例分析
Oct 15 Python
python 实现简单的FTP程序
Dec 27 Python
重写django的model下的objects模型管理器方式
May 15 Python
Python 字符串池化的前提
Jul 03 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 preg_match_all结合str_replace替换内容中所有img
2008/10/11 PHP
PHP中文件缓存转内存缓存的方法
2011/12/06 PHP
php封装的连接Mysql类及用法分析
2015/12/10 PHP
php实现异步将远程链接上内容(图片或内容)写到本地的方法
2016/11/30 PHP
详解php用curl调用接口方法,get和post两种方式
2017/01/13 PHP
ThinkPHP实现简单登陆功能
2017/04/28 PHP
javascript 操作cookies及正确使用cookies的属性
2009/10/15 Javascript
javascript 函数使用说明
2010/04/07 Javascript
Jquery ThickBox插件使用心得(不建议使用)
2010/09/08 Javascript
jquery 图片上传按比例预览插件集合
2011/05/28 Javascript
Javascript级联下拉菜单以及AJAX数据验证核心代码
2013/05/10 Javascript
Javascript判断文件是否存在(客户端/服务器端)
2014/09/16 Javascript
javascript中slice(),splice(),split(),substring(),substr()使用方法
2015/03/13 Javascript
js实现页面跳转的几种方法小结
2016/05/16 Javascript
设计模式中的facade外观模式在JavaScript开发中的运用
2016/05/18 Javascript
js原生之焦点图转换加定时器实例
2016/12/12 Javascript
bootstrap制作jsp页面(根据值让table显示选中)
2017/01/05 Javascript
Extjs 中的 Treepanel 实现菜单级联选中效果及实例代码
2017/08/22 Javascript
详解Vuex中mapState的具体用法
2017/09/28 Javascript
Bootstrap3.3.7导航栏下拉菜单鼠标滑过展开效果
2017/10/31 Javascript
详解Vue组件实现tips的总结
2017/11/01 Javascript
Easyui 去除jquery-easui tab页div自带滚动条的方法
2019/05/10 jQuery
[44:04]OG vs Mineski 2018国际邀请赛小组赛BO2 第一场 8.17
2018/08/18 DOTA
在IPython中执行Python程序文件的示例
2018/11/01 Python
在PyCharm下打包*.py程序成.exe的方法
2018/11/29 Python
python flask几分钟实现web服务的例子
2019/07/26 Python
python双端队列原理、实现与使用方法分析
2019/11/27 Python
python中threading和queue库实现多线程编程
2021/02/06 Python
YesStyle美国/全球:购买亚洲时装、美容化妆品和生活百货
2017/01/16 全球购物
expedia比利时:预订航班+酒店并省钱
2018/07/13 全球购物
中专生自我鉴定书范文
2013/12/28 职场文书
运动会解说词100字
2014/01/31 职场文书
小学生一分钟演讲稿
2014/08/26 职场文书
2014年工作总结与下年工作计划
2014/11/27 职场文书
2014年实验室工作总结
2014/12/03 职场文书
贴吧吧主申请感言
2015/08/03 职场文书