在tensorflow实现直接读取网络的参数(weight and bias)的值


Posted in Python onJune 24, 2020

训练好了一个网络,想要查看网络里面参数是否经过BP算法优化过,可以直接读取网络里面的参数,如果一直是随机初始化的值,则证明训练代码有问题,需要改。

下面介绍如何直接读取网络的weight 和 bias。

(1) 获取参数的变量名。可以使用一下函数获取变量名:

def vars_generate1(self,scope_name_var): return [var for var in tf.global_variables() if scope_name_var in var.name ]

输入你想要读取的变量的一部分的名称(scope_name_var),然后通过这个函数返回一个List,里面是所有含有这个名称的变量。

(2) 利用session读取变量的值:

def get_weight(self):
 full_connect_variable = self.vars_generate1("pred_network/full_connect/l5_conv")
 with tf.Session() as sess:
  sess.run(tf.global_variables_initializer()) ##一定要先初始化变量
  print(sess.run(full_connect_variable[0]))

之后如果想要看参数随着训练的变化,你可以将这些参数保存到一个txt文件里面查看。

补充知识:如何在 PyTorch 中设定学习率衰减(learning rate decay)

在tensorflow实现直接读取网络的参数(weight and bias)的值

很多时候我们要对学习率(learning rate)进行衰减,下面的代码示范了如何每30个epoch按10%的速率衰减:

def adjust_learning_rate(optimizer, epoch):
 """Sets the learning rate to the initial LR decayed by 10 every 30 epochs"""
 lr = args.lr * (0.1 ** (epoch // 30))
 for param_group in optimizer.param_groups:
  param_group['lr'] = lr

什么是param_groups?

optimizer通过param_group来管理参数组.param_group中保存了参数组及其对应的学习率,动量等等.所以我们可以通过更改param_group[‘lr']的值来更改对应参数组的学习率。

# 有两个`param_group`即,len(optim.param_groups)==2
optim.SGD([
    {'params': model.base.parameters()},
    {'params': model.classifier.parameters(), 'lr': 1e-3}
   ], lr=1e-2, momentum=0.9)
 
#一个参数组
optim.SGD(model.parameters(), lr=1e-2, momentum=.9)

以上这篇在tensorflow实现直接读取网络的参数(weight and bias)的值就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持三水点靠木。

Python 相关文章推荐
python基于queue和threading实现多线程下载实例
Oct 08 Python
Python3 正在毁灭 Python的原因分析
Nov 28 Python
python分析网页上所有超链接的方法
May 08 Python
Python实现简单HTML表格解析的方法
Jun 15 Python
Python中__init__.py文件的作用详解
Sep 18 Python
python读取文本中数据并转化为DataFrame的实例
Apr 10 Python
Python对切片命名的实现方法
Oct 16 Python
python实现对指定字符串补足固定长度倍数截断输出的方法
Nov 15 Python
Django框架实现分页显示内容的方法详解
May 10 Python
Django中FilePathField字段的用法
May 21 Python
python dict乱码如何解决
Jun 07 Python
Keras在mnist上的CNN实践,并且自定义loss函数曲线图操作
May 25 Python
基于pytorch中的Sequential用法说明
Jun 24 #Python
django haystack实现全文检索的示例代码
Jun 24 #Python
Python爬虫如何应对Cloudflare邮箱加密
Jun 24 #Python
python使用自定义钉钉机器人的示例代码
Jun 24 #Python
pytorch中的weight-initilzation用法
Jun 24 #Python
pytorch查看模型weight与grad方式
Jun 24 #Python
pytorch  网络参数 weight bias 初始化详解
Jun 24 #Python
You might like
PHP函数extension_loaded()用法实例
2015/01/19 PHP
php创建多级目录的方法
2015/03/24 PHP
Linux下从零开始安装配置Nginx服务器+PHP开发环境
2015/12/21 PHP
jQuery 源码分析笔记(6) jQuery.data
2011/06/08 Javascript
JavaScript 中的日期和时间及表示标准介绍
2013/08/21 Javascript
jQuery jcrop插件截图使用方法
2013/11/20 Javascript
JavaScript简单实现鼠标拖动选择功能
2014/03/06 Javascript
javascript在当前窗口关闭前检测窗口是否关闭
2014/09/29 Javascript
15个jquery常用方法、小技巧分享
2015/01/13 Javascript
JavaScript中的工厂函数(推荐)
2017/03/08 Javascript
vue-cli脚手架build目录下utils.js工具配置文件详解
2018/09/14 Javascript
vue 实现边输入边搜索功能的实例讲解
2018/09/16 Javascript
jquery图片预览插件实现方法详解
2019/07/18 jQuery
Layui 带多选框表格监听事件以及按钮自动点击写法实例
2019/09/02 Javascript
关于layui的动态图标不显示的解决方法
2019/09/04 Javascript
在vue中高德地图引入和轨迹的绘制的实现
2019/10/11 Javascript
javascript实现倒计时效果
2020/02/17 Javascript
小程序实现点击tab切换左右滑动
2020/11/16 Javascript
[36:54]Mineski vs Winstrike 2018国际邀请赛小组赛BO2 第一场 8.16
2018/08/17 DOTA
在Django的模板中使用认证数据的方法
2015/07/23 Python
Python3.4实现从HTTP代理网站批量获取代理并筛选的方法示例
2017/09/26 Python
Python实现查看系统启动项功能示例
2018/05/10 Python
对python 命令的-u参数详解
2018/12/03 Python
在Python中表示一个对象的方法
2019/06/25 Python
Python 3 判断2个字典相同
2019/08/06 Python
经典c++面试题六
2012/01/18 面试题
移动通信专业自荐信范文
2013/11/12 职场文书
应届实习生的自我评价范文
2014/01/05 职场文书
以幸福为主题的活动方案
2014/08/22 职场文书
教师党员自我剖析材料
2014/09/29 职场文书
党风廉政建设个人总结
2015/03/06 职场文书
2015年个人工作总结报告
2015/04/25 职场文书
圣诞晚会主持词
2015/07/01 职场文书
2016年国庆节假期旅游工作总结
2016/04/01 职场文书
CSS3实现模糊背景的三种效果示例
2021/03/30 HTML / CSS
5行Python代码实现一键批量扣图
2021/06/29 Python