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

2018-09-11 15:23 更新

tf.losses.softmax_cross_entropy函數(shù)

tf.losses.softmax_cross_entropy(
    onehot_labels,
    logits,
    weights=1.0,
    label_smoothing=0,
    scope=None,
    loss_collection=tf.GraphKeys.LOSSES,
    reduction=Reduction.SUM_BY_NONZERO_WEIGHTS
)

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

使用tf.nn.softmax_cross_entropy_with_logits創(chuàng)建交叉熵(cross-entropy)loss.

weights作為loss的系數(shù).如果提供了標量,那么loss只是按給定值縮放.如果weights是形狀為[batch_size]的張量,則loss權重適用于每個相應的樣本.

如果label_smoothing非零,則將標簽平滑為:1/num_classes: new_onehot_labels = onehot_labels * (1 - label_smoothing) + label_smoothing / num_classes

參數(shù):

  • onehot_labels:[batch_size, num_classes]目標是一個hot-encoded標簽.
  • logits:[batch_size, num_classes]logits網(wǎng)絡的輸出.
  • weights:可選的Tensor,其秩為0或1,并且可以廣播到形狀為[batch_size]的Tensor的loss.
  • label_smoothing:如果大于0,則平滑標簽.
  • scope:計算loss時執(zhí)行的操作范圍.
  • loss_collection:將添加loss的集合.
  • reduction:適用于loss的減少類型.

返回:

與logits具有相同類型的加權損失Tensor.如果reduction是NONE,這有形狀[batch_size];否則,它是標量.

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

  • ValueError:如果logits的形狀與onehot_labels不匹配,或weights的形狀無效,或者如果weights是None,如果onehot_labels或logits是None.
以上內容是否對您有幫助:
在線筆記
App下載
App下載

掃描二維碼

下載編程獅App

公眾號
微信公眾號

編程獅公眾號