gpt4 book ai didi

machine-learning - 如何禁用 tensorflow 中特定层的动量?

转载 作者:行者123 更新时间:2023-11-30 08:46:40 26 4
gpt4 key购买 nike

我有一个具有三个隐藏层的神经网络,可以使用“纯”梯度下降或一些更复杂的技术进行训练。我还注意到,在我的问题中,基于动量的优化方法(adam、adadelta、动量)效果更好。

现在到有趣的部分了。根据设计,我想禁用神经网络第一层的动量。这意味着,我想在第二层和第三层中使用 Adam 更新权重,但在第一层中使用简单的梯度下降。

当然,我总是可以编写自己的优化器:使用 tf.gradients(loss, tf.trainable_variables()) 计算梯度,然后自己做动量技巧。但如果能够选择在每一层中使用特殊的优化器参数,那就太好了。有人听说过这样做的方法吗?

最佳答案

那么,您可以向优化器提供要优化的变量列表( docs ):

opt = tf.train.AdamOptimizer()
opt_op = opt.minimize(loss, var_list=[W1, b1])
opt2 = tf.train.GradientDescentOptimizer(learning_rate)
opt2_op = opt2.minimize(loss, var_list=[W2, b2])

您必须自己提取给定层的变量列表(可能是权重和偏差)。

关于machine-learning - 如何禁用 tensorflow 中特定层的动量?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40782397/

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