當前位置: 首頁>>編程示例 >>用法及示例精選 >>正文


Python mxnet.symbol.MakeLoss用法及代碼示例

用法:

mxnet.symbol.MakeLoss(data=None, grad_scale=_Null, valid_thresh=_Null, normalization=_Null, name=None, attr=None, out=None, **kwargs)

參數

  • data(Symbol) - 輸入數組。
  • grad_scale(float, optional, default=1) - 梯度尺度作為一元和二元運算符的補充
  • valid_thresh(float, optional, default=0) - 當數組中的每個元素小於時,將其裁剪為 0valid_thresh.這用於normalization被設定為'valid'.
  • normalization({'batch', 'null', 'valid'},optional, default='null') - 如果設置為 null,則輸出梯度將不會被歸一化。如果將其設置為批處理,則輸出梯度將除以批處理大小。如果設置為有效,則輸出梯度將除以有效輸入元素的數量。
  • name(string, optional.) - 結果符號的名稱。

返回

結果符號。

返回類型

Symbol

在網絡構建中製作自己的損失函數。

該運算符接受自定義損失函數符號作為終端損失,並且該符號應該是沒有後向依賴的運算符。該函數的輸出是相對於輸入數據的損失梯度。

例如,如果您正在製作交叉熵損失函數。假設out是預測輸出,label是真實標簽,那麽交叉熵可以定義為:

cross_entropy = label * log(out) + (1 - label) * log(1 - out)
loss = MakeLoss(cross_entropy)

當我們創建自己的損失函數或想要組合多個損失函數時,我們將需要使用MakeLoss。此外,我們可能希望阻止某些變量的梯度進行反向傳播。在 BlockGradstop_gradient 中查看更多詳細信息。

此外,我們可以通過設置 grad_scale 來給損失一個比例,這樣損失的梯度會在反向傳播中重新調整。

注意

此運算符應用作符號而不是 NDArray。

相關用法


注:本文由純淨天空篩選整理自apache.org大神的英文原創作品 mxnet.symbol.MakeLoss。非經特殊聲明,原始代碼版權歸原作者所有,本譯文未經允許或授權,請勿轉載或複製。