tf.nn.l2_loss()的用法


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

 


免責聲明!

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



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