tensorflow 固定部分参数训练,只训练部分参数的实例


Posted in Python onJanuary 20, 2020

在使用tensorflow来训练一个模型的时候,有时候需要依靠验证集来判断模型是否已经过拟合,是否需要停止训练。

1.首先想到的是用tf.placeholder()载入不同的数据来进行计算,比如

def inference(input_):
  """
  this is where you put your graph.
  the following is just an example.
  """
  
  conv1 = tf.layers.conv2d(input_)
 
  conv2 = tf.layers.conv2d(conv1)
 
  return conv2
 
 
input_ = tf.placeholder()
output = inference(input_)
...
calculate_loss_op = ...
train_op = ...
...
 
with tf.Session() as sess:
  sess.run([loss, train_op], feed_dict={input_: train_data})
 
  if validation == True:
    sess.run([loss], feed_dict={input_: validate_date})

这种方式很简单,也很直接了然。

2.但是,如果处理的数据量很大的时候,使用 tf.placeholder() 来载入数据会严重地拖慢训练的进度,因此,常用tfrecords文件来读取数据。

此时,很容易想到,将不同的值传入inference()函数中进行计算。

train_batch, label_batch = decode_train()
val_train_batch, val_label_batch = decode_validation()
 
 
train_result = inference(train_batch)
...
loss = ..
train_op = ...
...
 
if validation == True:
  val_result = inference(val_train_batch)
  val_loss = ..
  
 
with tf.Session() as sess:
  sess.run([loss, train_op])
 
  if validation == True:
    sess.run([val_result, val_loss])

这种方式看似能够直接调用inference()来对验证数据进行前向传播计算,但是,实则会在原图上添加上许多新的结点,这些结点的参数都是需要重新初始化的,也是就是说,验证的时候并不是使用训练的权重。

3.用一个tf.placeholder来控制是否训练、验证。

def inference(input_):
  ...
  ...
  ...
  
  return inference_result
 
 
train_batch, label_batch = decode_train()
val_batch, val_label = decode_validation()
 
is_training = tf.placeholder(tf.bool, shape=())
 
x = tf.cond(is_training, lambda: train_batch, lambda: val_batch)
y = tf.cond(is_training, lambda: train_label, lambda: val_label)
 
logits = inference(x)
loss = cal_loss(logits, y)
train_op = optimize(loss)
 
with tf.Session() as sess:
  
  loss, _ = sess.run([loss, train_op], feed_dict={is_training: True})
  
  if validation == True:
    loss = sess.run(loss, feed_dict={is_training: False})

使用这种方式就可以在一个大图里创建一个分支条件,从而通过控制placeholder来控制是否进行验证。

以上这篇tensorflow 固定部分参数训练,只训练部分参数的实例就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持三水点靠木。

Python 相关文章推荐
Python的collections模块中namedtuple结构使用示例
Jul 07 Python
python 3利用BeautifulSoup抓取div标签的方法示例
May 28 Python
python PyTorch预训练示例
Feb 11 Python
python获取文件真实链接的方法,针对于302返回码
May 14 Python
解决python selenium3启动不了firefox的问题
Oct 13 Python
Python+OpenCV图片局部区域像素值处理详解
Jan 23 Python
python 多线程串行和并行的实例
Feb 22 Python
详解Python读取yaml文件多层菜单
Mar 23 Python
python GUI图形化编程wxpython的使用
Jul 19 Python
django实现后台显示媒体文件
Apr 07 Python
python 5个顶级异步框架推荐
Sep 09 Python
Python绘制数码晶体管日期
Feb 19 Python
如何通过Django使用本地css/js文件
Jan 20 #Python
Python中 Global和Nonlocal的用法详解
Jan 20 #Python
Django后台管理系统的图文使用教学
Jan 20 #Python
解决Pycharm的项目目录突然消失的问题
Jan 20 #Python
Python log模块logging记录打印用法解析
Jan 20 #Python
解决tensorflow训练时内存持续增加并占满的问题
Jan 19 #Python
Tensorflow获取张量Tensor的具体维数实例
Jan 19 #Python
You might like
PHP实现移除数组中为空或为某值元素的方法
2017/01/07 PHP
在js中使用"with"语句中跨frame的变量引用问题
2007/03/08 Javascript
JavaScript获取flash对象与网上的有所不同
2014/04/21 Javascript
jquery ui bootstrap 实现自定义风格
2014/11/14 Javascript
express的中间件cookieParser详解
2014/12/04 Javascript
JavaScript前端图片加载管理器imagepool使用详解
2014/12/29 Javascript
jquery.cookie.js实现用户登录保存密码功能的方法
2016/04/15 Javascript
js 性能优化之算法和流程控制
2017/02/15 Javascript
js实现产品缩略图效果
2017/03/10 Javascript
JavaScript实现QQ聊天消息展示和评论提交功能
2017/05/22 Javascript
详解vue.js 开发环境搭建最简单攻略
2017/06/12 Javascript
js实现图片上传预览原理分析
2017/07/13 Javascript
js+html5实现半透明遮罩层弹框效果
2020/08/24 Javascript
js中url对象化管理分析
2017/12/29 Javascript
node 命令方式启动修改端口的方法
2018/05/12 Javascript
微信小程序使用map组件实现检索(定位位置)周边的POI功能示例
2019/01/23 Javascript
jquery实现Ajax请求的几种常见方式总结
2019/05/28 jQuery
[41:37]DOTA2北京网鱼队选拔赛——冲击职业之路
2015/04/13 DOTA
Python实现的括号匹配判断功能示例
2018/08/25 Python
python生成n个元素的全组合方法
2018/11/13 Python
OpenCV HSV颜色识别及HSV基本颜色分量范围
2019/03/22 Python
简单了解python反射机制的一些知识
2019/07/13 Python
Python 实现数据结构-循环队列的操作方法
2019/07/17 Python
解决pyshp UnicodeDecodeError的问题
2019/12/06 Python
python pprint模块中print()和pprint()两者的区别
2020/02/10 Python
基于Html5 canvas实现裁剪图片和马赛克功能及又拍云上传图片 功能
2019/07/09 HTML / CSS
韩国三大免税店之一:THE GRAND 中文免税店
2016/07/21 全球购物
世界上最悠久的自行车制造商:Ribble Cycles
2017/03/18 全球购物
土耳其时尚潮流在线购物网站:Trendyol
2017/10/10 全球购物
eDreams加拿大:廉价航班、酒店和度假
2019/03/29 全球购物
公司晚会策划方案
2014/05/17 职场文书
高等学院职业生涯规划书范文
2014/09/16 职场文书
募捐感谢信
2015/01/22 职场文书
给女朋友的道歉短信
2015/05/12 职场文书
运动会通讯稿200字
2015/07/20 职场文书
全国劳模先进事迹材料(2016精选版)
2016/02/25 职场文书