tensorflow中添加L2正則化損失


方法有幾種,總結一下方便后面使用。

1. tensorflow自動維護一個tf.GraphKeys.WEIGHTS集合,手動在集合里面添加(tf.add_to_collection())想要進行正則化懲罰的變量。

然后創建 regularizer = tf.contrib.layers.l2_regularizer(REGULARIZATION_RATE),

再應用函數 regularization_loss = tf.contrib.layers.apply_regularization(regularizer=regurializer) 即可得到對集合tf.GraphKeys.WEIGHTS內的變量的正則化項。


 

2. 先創建 regularizer =  tf.contrib.layers.l2_regularizer(REGULARIZATION_RATE),

創建變量時指定regularizer,如 w1 = tf.get_variable('w1', [100, 100], regularizer=regularizer),tensorflow會將變量加入集合 tf.GraphKeys.REGULARIZATOIN_LOSSES,

然后設置正則化系數 REGULARIZATION_RATE,通過獲取上述的集合即可得到正則化損失

regularization_loss = REGULARIZATION * sum(tf.get_collection(tf.GraphKeys.REGULARIZATION_LOSSES))。


免責聲明!

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



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