时间:2021-05-22
训练好了一个网络,想要查看网络里面参数是否经过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)
很多时候我们要对学习率(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)==2optim.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)的值就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持。
声明:本页内容来源网络,仅供用户参考;我单位不保证亦不表示资料全面及准确无误,也不保证亦不表示这些资料为最新信息,如因任何原因,本网内容或者用户因倚赖本网内容造成任何损失或损害,我单位将不会负任何法律责任。如涉及版权问题,请提交至online#300.cn邮箱联系删除。
tensorflow中如果要对神经网络模型进行训练,需要把训练数据转换为tfrecord格式才能被读取,tensorflow的model文件里直接提供了相应的脚
TensorFlow读取CSV数据原理在此就不做详细介绍,直接通过代码实现:方法一:详细读取tf_read.csv代码#coding:utf-8importte
具体不做详细介绍了,直接上代码//////功能:FileStream文件流读取文件//////参数:文件路径///返回值:StreamReader对象publi
在进行excel文件读取的时候,我自己设置了部分直接从公式获取单元格的值但是用之前的读取方法进行读取的时候,返回值为空importosimportxlrdfro
本文实例为大家分享了tensorflow实现弹性网络回归算法,供大家参考,具体内容如下python代码:#用tensorflow实现弹性网络算法(多变量)#使用