gpt4 book ai didi

python - 额外的优化器会影响正则化损失

转载 作者:太空宇宙 更新时间:2023-11-03 20:36:04 25 4
gpt4 key购买 nike

我正在使用现有的 tensorflow 模型。

对于网络的一部分,我想设置与其余网络不同的学习率。假设 all_variablesvariables_1variables_2 组成,那么我想更改 variables_2 变量的学习率>.

用于设置优化器、计算和应用梯度的现有代码基本上如下所示:

optimizer = tf.train.MomentumOptimizer(learning_rate, 0.9)
grads_and_vars = optimizer.compute_gradients(loss, all_variables)
grads_updates = optimizer.apply_gradients(grads_and_vars, global_step)

我已经尝试按照此方案创建第二个优化器。然而,为了调试,我将两个学习率设置为相等,并且正则化损失的减少非常不同。

是否可以创建第二个优化器 optimizer_new,并简单地在 variables_1 的相应 grads_and_vars 上应用 apply_gradients variables_2? IE。而不是有这一行

grads_updates = optimizer.apply_gradients(grads_and_vars, global_step) 

可以使用

grads_updates = optimizer.apply_gradients(grads_and_vars['variables_1'], global_step)

grads_updates_new = optimizer_new.apply_gradients(grads_and_vars['variables_2'], global_step)

最后,train_op = tf.group(grads_updates, grads_updates_new)

但是,正则化损失行为仍然存在。

最佳答案

我通过this post中的评论发现了这个原因。就我而言,为 apply_gradients 的 global_step 参数提供两次“global_step”是没有意义的。由于学习率以及优化器参数取决于全局步长,因此训练过程(尤其是正则化损失行为)会有所不同。感谢y.selivonchyk感谢指出这一点。

关于python - 额外的优化器会影响正则化损失,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57165937/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com