tensorflow設置不同層不同學習率


   1.先輸出層的參數變量

variables_names = [v.name for v in tf.trainable_variables()]
values = sess.run(variables_names)
for k, v in zip(variables_names, values):
    print "Variable: ", k
    print "Shape: ", v.shape
    print v

2.比如要對前20層的參數使用較低的學習率微調(20層大概有40種參數,20個weight,20個bia),對后面新的層使用較大的學習率進行學習:
  使用tf.trainable_variables()獲取網絡的變量
  var1 = tf.trainable_variables()[0:40]
  var2 = tf.trainable_variables()[40:]
  train_op1 = GradientDescentOptimizer(0.00001).minimize(loss, var_list=var1) 優化方法可以修改   train_op2 = GradientDescentOptimizer(0.0001).minimize(loss, var_list=var2)   train_op = tf.group(train_op1, train_op2)

3.利用預訓練好的模型進行新模型的學習
 加載預訓練好的模型參數去替換新網絡對應的那部分參數即可,直接把新網絡初始化的參數值替換。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM