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