tensorflow 初始化单个参数的方式

有时候在训练网络的时候我们需要运用之前训练好的结果但是又不想经历 “训练-存储模型-加载模型-应用”这样繁琐的过程时,同时 在循环过程中我们可以在几次for循环时避免初始化所有变量在循环中使用网络中已训练好的参数如权重、偏置值b等,只初始化学习率这样的外围超参数,这样就可以避免前面的繁琐循环。这里就是介绍只单个初始化变量,方法简单,只是一开始没想到,记录下来:

# 第一步和正常定义一样,就是定义变量的初始化方式,如:

learning_rate = tf.train.exponential_decay(0.01,global_step,50,0.96)

for XXX:
    ...
 #这样就只对学习率进行初始化,避免初始化所有变量把之前训练的网络权重也初始化导致训练结果没了的窘境。
    sess.run(learning_rate.initializer)
    ...
    ...

函数的功能及其中参数的含义:

这里定义的是学习率的指数下降法,0.01即学习率的初始值,global_step 是全局开始计数的起始步数,这个参数也要在之前定义好的,一般为0,即从一开始就开始计步;50表示每五十步进行一次学习了的衰减,衰减率为0.96,即衰减到上一次的96%,也就是0.96的含义。

除此之外,还有前面所提到的单个变量的初始化(v.initializer)

可以查询哪些变量尚未初始化。例如,以下代码会打印所有尚未初始化的变量名称:

print(sess.run(tf.report_uninitialized_variables()))

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值
>