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实现爬取知乎神回复简单爬虫代码分享
Jan 04 Python
Python生成随机密码
Mar 10 Python
Python模块搜索概念介绍及模块安装方法介绍
Jun 03 Python
Python的math模块中的常用数学函数整理
Feb 04 Python
解决python "No module named pip" 的问题
Oct 13 Python
python实现五子棋游戏
Jun 18 Python
详解python中的index函数用法
Aug 06 Python
python 爬取学信网登录页面的例子
Aug 13 Python
python3让print输出不换行的方法
Aug 24 Python
详解Open Folder as PyCharm Project怎么添加的方法
Dec 29 Python
python实现的web监控系统
Apr 27 Python
利用 Python 的 Pandas和 NumPy 库来清理数据
Apr 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
第四节--构造函数和析构函数
2006/11/16 PHP
Smarty中常用变量操作符汇总
2014/10/27 PHP
JavaScript ( (__ = !$ + $)[+$] + ({} + $)[_/_] +({} + $)[_/_] )
2011/02/25 Javascript
jQuery load方法用法集锦
2011/12/06 Javascript
js修改table中Td的值(定义td的双击事件)
2013/01/10 Javascript
jquery的live使用注意事项
2014/02/18 Javascript
jQuery制作的别致导航有阴影背景高亮模式窗口
2014/04/15 Javascript
json中换行符的处理方法示例介绍
2014/06/10 Javascript
js正则表达式中exec用法实例
2015/07/23 Javascript
node+experss实现爬取电影天堂爬虫
2016/11/20 Javascript
AngularJS路由切换实现方法分析
2017/03/17 Javascript
Bootstrap输入框组件使用详解
2017/06/09 Javascript
jQuery复合事件结合toggle()方法的用法示例
2017/06/10 jQuery
微信小程序自定义组件
2017/08/16 Javascript
jQuery EasyUI 折叠面板accordion的使用实例(分享)
2017/12/25 jQuery
一步步教你利用webpack如何搭一个vue脚手架(超详细讲解和注释)
2018/01/08 Javascript
vue 自定义 select内置组件
2018/04/10 Javascript
React+Webpack快速上手指南(小结)
2018/08/15 Javascript
详解nvm管理多版本node踩坑
2019/07/26 Javascript
[54:53]2014 DOTA2国际邀请赛中国区预选赛 LGD-GAMING VS CIS 第二场
2014/05/23 DOTA
Python yield 小结和实例
2014/04/25 Python
python f-string式格式化听语音流程讲解
2019/06/18 Python
Python函数生成器原理及使用详解
2020/03/12 Python
python3 正则表达式基础廖雪峰
2020/03/25 Python
PyInstaller将Python文件打包为exe后如何反编译(破解源码)以及防止反编译
2020/04/15 Python
python 日志模块 日志等级设置失效的解决方案
2020/05/26 Python
CSS3 实现飘动的云朵动画
2020/12/01 HTML / CSS
米兰网婚纱礼服法国网上商店:Milanoo法国
2016/08/20 全球购物
新西兰床上用品和家居用品购物网站:Adairs
2018/04/27 全球购物
大学生冰淇淋店商业计划书
2014/01/14 职场文书
2014大学生批评与自我批评思想汇报
2014/09/21 职场文书
国际贸易本科毕业生求职信
2014/09/26 职场文书
写给老婆的保证书
2015/02/27 职场文书
个人自荐书怎么写
2015/03/26 职场文书
2015年教师节感言
2015/08/03 职场文书
python代码实现扫码关注公众号登录的实战
2021/11/01 Python