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

时间:2016-09-30 14:09:40

标签: tensorflow deep-learning

我想到的用例是为预先训练好的网络添加更多图层,我想调整整个网络。但是,我希望新添加的图层具有比现有图层更高的学习率。是否可以在TensorFlow中执行此操作?

1 个答案:

答案 0 :(得分:2)

您可以使用提及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)