TensorFlow中的L2正則化函數:tf.nn.l2_loss()與tf.contrib.layers.l2_regularizerd()的用法與異同


tf.nn.l2_loss()與tf.contrib.layers.l2_regularizerd()都是TensorFlow中的L2正則化函數,tf.contrib.layers.l2_regularizerd()函數在tf 2.x版本中被棄用了。

兩者都能用來L2正則化處理,但運算有一點不同。

import tensorflow as tf
sess = InteractiveSession()

a = tf.constant([1, 2, 3], dtype=tf.float32)
b = tf.nn.l2_loss(a)
print(b.eval())    # 7.0
# tf.nn.l2_loss 運算是每個數的平方和再除以二
# b = (12+22+33)/2 =7.0

而tf.contrib.layers.l2_regularizerd()的運算是每個數的平方和 開根號 再除以二,即(12+22+33)0.5 /2 

我的tf版本沒法用l2_regularizerd函數,就沒演示代碼了。

tf.nn.l2_loss


免責聲明!

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



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