在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根据出生年份简单计算生肖的方法
Mar 27 Python
python利用正则表达式提取字符串
Dec 08 Python
python+selenium+autoit实现文件上传功能
Aug 23 Python
对python中GUI,Label和Button的实例详解
Jun 27 Python
tensorflow自定义激活函数实例
Feb 04 Python
django列表筛选功能的实现代码
Mar 27 Python
matplotlib 对坐标的控制,加图例注释的操作
Apr 17 Python
2020最新pycharm汉化安装(python工程狮亲测有效)
Apr 26 Python
翻转数列python实现,求前n项和,并能输出整个数列的案例
May 03 Python
Django 如何使用日期时间选择器规范用户的时间输入示例代码详解
May 22 Python
使用pytorch实现线性回归
Apr 11 Python
自动在Windows中运行Python脚本并定时触发功能实现
Sep 04 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实现读取一个1G的文件大小
2013/08/24 PHP
PHP goto语句简介和使用实例
2014/03/11 PHP
搜索附近的人PHP实现代码
2018/02/11 PHP
Yii框架学习笔记之应用组件操作示例
2019/11/13 PHP
PHP如何通过date() 函数格式化显示时间
2020/11/13 PHP
js获取指定日期周数以及星期几的小例子
2014/06/27 Javascript
JavaScript实现简单的二级导航菜单实例
2015/04/15 Javascript
jquery实现鼠标悬浮停止轮播特效
2020/08/20 Javascript
jquery radio的取值_radio的选中_radio的重置方法
2016/09/20 Javascript
JS中from 表单序列化提交的代码
2017/01/20 Javascript
基于JS实现bookstore静态页面的实例代码
2017/02/22 Javascript
详解layui中的树形关于取值传值问题
2018/01/16 Javascript
Angular6中使用Swiper的方法示例
2018/07/09 Javascript
vue 使用 canvas 实现手写电子签名
2020/03/06 Javascript
vue 全局封装loading加载教程(全局监听)
2020/11/05 Javascript
Python使用Pycrypto库进行RSA加密的方法详解
2016/06/06 Python
为Python的Tornado框架配置使用Jinja2模板引擎的方法
2016/06/30 Python
一个简单的python爬虫程序 爬取豆瓣热度Top100以内的电影信息
2018/04/17 Python
python实现zabbix发送短信脚本
2018/09/17 Python
基于python的ini配置文件操作工具类
2019/04/24 Python
python 计算平均平方误差(MSE)的实例
2019/06/29 Python
TensorFLow 变量命名空间实例
2020/02/11 Python
python词云库wordCloud使用方法详解(解决中文乱码)
2020/02/17 Python
python爬虫用mongodb的理由
2020/07/28 Python
python Protobuf定义消息类型知识点讲解
2021/03/02 Python
LivingSocial爱尔兰:爱尔兰本地优惠
2018/08/10 全球购物
如何减少垃圾回收让内存更加有效使用
2013/10/18 面试题
会计毕业生求职简历的自我评价
2013/10/20 职场文书
房地产融资计划书
2014/01/10 职场文书
事务机电主管工作职责
2014/02/25 职场文书
人事主管岗位职责说明书
2014/07/30 职场文书
布达拉宫导游词
2015/02/02 职场文书
食品安全主题班会
2015/08/13 职场文书
Python字典的基础操作
2021/11/01 Python
Redis命令处理过程源码解析
2022/02/12 Redis
win10双系统怎么删除一个系统?win10电脑有两个系统删除一个的操作方法
2022/07/15 数码科技