在TensorFlow中,是否可以对网络的不同部分使用不同的学习速率?

我想到的用例是为预先训练好的网络添加更多图层,我想调整整个网络.但是,我希望新添加的图层具有比现有图层更高的学习率.是否可以在TensorFlow中执行此操作? 最佳答案 您可以使用
here提到的类似方法

基本上为您要训练的网络的每个部分设置一个不同的变量范围,然后使用单独的学习率:

optimizer1 = tf.train.AdagradOptimzer(0.0001)
optimizer2 = tf.train.AdagradOptimzer(0.01)

first_train_vars = tf.get_collection(tf.GraphKeys.TRAINABLE_VARIABLES,
                                 "scope/prefix/for/first/vars")
first_train_op = optimizer1.minimize(cost, var_list=first_train_vars)

second_train_vars = tf.get_collection(tf.GraphKeys.TRAINABLE_VARIABLES,
                                  "scope/prefix/for/second/vars")                     
second_train_op = optimizer2.minimize(cost, var_list=second_train_vars)
点赞