在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 相关文章推荐
python3使用urllib模块制作网络爬虫
Apr 08 Python
python数据类型判断type与isinstance的区别实例解析
Oct 31 Python
对python的文件内注释 help注释方法
May 23 Python
django 多数据库配置教程
May 30 Python
python利用requests库模拟post请求时json的使用教程
Dec 07 Python
详解安装mitmproxy以及遇到的坑和简单用法
Jan 21 Python
pyinstaller打包多个py文件和去除cmd黑框的方法
Jun 21 Python
给你一面国旗 教你用python画中国国旗
Sep 24 Python
python wxpython 实现界面跳转功能
Dec 17 Python
浅谈pytorch torch.backends.cudnn设置作用
Feb 20 Python
Python定义一个函数的方法
Jun 15 Python
python matplotlib工具栏源码探析二之添加、删除内置工具项的案例
Feb 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
德生PL450的电路分析和低放电路的改进办法
2021/03/02 无线电
在PHP中利用XML技术构造远程服务(上)
2006/10/09 PHP
2个Codeigniter文件批量上传控制器写法例子
2014/07/25 PHP
9个经典的PHP代码片段分享
2014/12/18 PHP
使用PHP编写发红包程序
2015/07/22 PHP
laravel-admin 在列表页添加自定义按钮的例子
2019/09/30 PHP
Laravel 创建指定表 migrate的例子
2019/10/09 PHP
OfflineSave离线保存代码再次发布使用说明
2007/05/23 Javascript
可实现多表单提交的javascript函数
2007/08/01 Javascript
javascript判断机器是否联网的2种方法
2013/08/09 Javascript
jQuery的选择器中的通配符使用介绍
2014/03/20 Javascript
JavaScript实现控制打开文件另存为对话框的方法
2015/04/17 Javascript
Knockout自定义绑定创建方法
2015/12/26 Javascript
JavaScript类型系统之Object详解
2016/01/07 Javascript
后端接收不到AngularJs中$http.post发送的数据原因分析及解决办法
2016/07/05 Javascript
JavaScript与ActionScript3两者的同性与差异性
2016/09/22 Javascript
nodejs操作mysql实现增删改查的实例
2017/05/28 NodeJs
Vue 兄弟组件通信的方法(不使用Vuex)
2017/10/26 Javascript
在微信小程序里使用watch和computed的方法
2018/08/02 Javascript
JavaScript实现复选框全选和取消全选
2020/11/20 Javascript
CentOS中使用virtualenv搭建python3环境
2015/06/08 Python
python检查字符串是否是正确ISBN的方法
2015/07/11 Python
详解在Python的Django框架中创建模板库的方法
2015/07/20 Python
python中利用await关键字如何等待Future对象完成详解
2017/09/07 Python
Python中 map()函数的用法详解
2018/07/10 Python
Python图像处理之gif动态图的解析与合成操作详解
2018/12/30 Python
python flask解析json数据不完整的解决方法
2019/05/26 Python
Windows下pycharm创建Django 项目(虚拟环境)过程解析
2019/09/16 Python
TensorFlow加载模型时出错的解决方式
2020/02/06 Python
英国女装网上商店:I Saw It First
2018/10/18 全球购物
《再别康桥》教学反思
2014/02/12 职场文书
护理专科毕业生自荐书范文
2014/02/19 职场文书
协商一致解除劳动合同协议书
2014/09/14 职场文书
仲裁协议书
2014/09/26 职场文书
先进党支部申报材料
2014/12/24 职场文书
Django项目如何正确配置日志(logging)
2021/04/29 Python