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
