TensorFlow函數(shù):tf.losses.huber_loss

2018-08-23 12:02 更新

tf.losses.huber_loss函數(shù)

tf.losses.huber_loss(
    labels,
    predictions,
    weights=1.0,
    delta=1.0,
    scope=None,
    loss_collection=tf.GraphKeys.LOSSES,
    reduction=Reduction.SUM_BY_NONZERO_WEIGHTS
)

定義在:tensorflow/python/ops/losses/losses_impl.py.

將Huber Loss術語添加到訓練過程中.

對于error=labels-predictions中的每個x值,計算以下值:

0.5 * x^2                  if |x| <= d
0.5 * d^2 + d * (|x| - d)  if |x| > d      

其中d是delta.

請參閱:https://en.wikipedia.org/wiki/Huber_loss

weights作為loss的系數(shù).如果提供了標量,那么loss只是按給定值進行縮放.如果weights是一個大小為[batch_size]的張量,那么批次的每個樣本的總loss由weights向量中的相應元素重新調整.如果weights的形狀與predictions形狀匹配,則predictions的每個可測量元素的loss由相應的weights值縮放.

參數(shù):

  • labels:真實的輸出張量,與“predictions”相同.
  • predictions:預測的輸出.
  • weights:可選的Tensor,其秩為0或與labels具有相同的秩,并且必須可廣播到labels(即,所有維度必須為1,或者與相應的losses維度相同).
  • delta:float,huber loss函數(shù)從二次函數(shù)變?yōu)榫€性函數(shù)的點.
  • scope:計算loss時執(zhí)行的操作范圍.
  • loss_collection:將添加loss的集合.
  • reduction:適用于loss的減少類型.

返回:

加權損失浮動Tensor,如果reduction是NONE,則它的形狀與labels相同,否則,它是標量.

可能引發(fā)的異常:

  • ValueError:如果形狀predictions的形狀與labels不匹配,或weights的形狀是無效的;或者如果labels或predictions為None,則會發(fā)生此異常.
以上內容是否對您有幫助:
在線筆記
App下載
App下載

掃描二維碼

下載編程獅App

公眾號
微信公眾號

編程獅公眾號