l2_loss()這個函數的作用是利用L2范數來計算張量的誤差值,但是沒有開發並且只取L2范數的值的一半
函數:
tf.nn.l2_loss(
t,
name=None
)
參數:
t:一個張量(tensor),類型可以為:half, bfloat16, float32, float64
name:op的一個名字,即為這個操作取個名字
作用:使用sqrt計算張量的L2范數的一半
輸出:
一個tensor,數據類型和t相同,是一個標量
計算公式:
output = sum(t**2)/2
簡單的可以理解成張量中的每一個元素進行平方,然后求和,最后乘一個1/2
l2_loss一般用於優化目標函數中的正則項,防止參數太多復雜容易過擬合(所謂的過擬合問題是指當一個模型很復雜時,它可以很好的“記憶”每一個訓練數據中的隨機噪聲的部分而忘記了要去“學習”訓練數據中通用的趨勢)
import tensorflow as tf x = tf.constant([1,2,3],dtype=tf.float32) with tf.Session() as sess: print(sess.run(tf.nn.l2_loss(x)))
1/2(1**2+2**2+3**2) = 1/2(1+4+9) = 7.0