本文簡要介紹python語言中 torch.nn.BCELoss 的用法。
用法:
class torch.nn.BCELoss(weight=None, size_average=None, reduce=None, reduction='mean')weight(Tensor,可選的) -手動重新調整每個批次元素損失的權重。如果給定,則必須是大小為
nbatch的張量。size_average(bool,可選的) -已棄用(請參閱
reduction)。默認情況下,損失是批次中每個損失元素的平均值。請注意,對於某些損失,每個樣本有多個元素。如果字段size_average設置為False,則會對每個小批量的損失求和。當reduce為False時忽略。默認值:Truereduce(bool,可選的) -已棄用(請參閱
reduction)。默認情況下,根據size_average對每個小批量的觀察結果進行平均或求和。當reduce是False時,返回每個批次元素的損失並忽略size_average。默認值:Truereduction(string,可選的) -指定要應用於輸出的縮減:
'none'|'mean'|'sum'。'none':不應用減少,'mean':輸出的總和將除以輸出中的元素數,'sum':輸出將被求和。注意:size_average和reduce正在被棄用,同時,指定這兩個參數中的任何一個都將覆蓋reduction。默認值:'mean'
創建一個衡量目標和輸入概率之間的二元交叉熵的標準:
未減少的(即
reduction設置為'none')損失可以說明為:其中 是批量大小。如果
reduction不是'none'(默認'mean'),那麽這用於測量例如auto-encoder 中的重建誤差。請注意,目標 應該是 0 到 1 之間的數字。
請注意,如果 為 0 或 1,則上述損失方程中的對數項之一將在數學上未定義。 PyTorch 選擇設置 ,因為 。然而,由於幾個原因,損失方程中的無限項是不可取的。
一方麵,如果 或 ,那麽我們將 0 乘以無窮大。其次,如果我們有一個無限的損失值,那麽我們的梯度中也會有一個無限項,因為 。這將使 BCELoss 的後向方法相對於 是非線性的,並且將其用於線性回歸之類的事情不會是 straight-forward。
我們的解決方案是 BCELoss 將其日誌函數輸出鉗製為大於或等於 -100。這樣,我們總是可以有一個有限的損失值和一個線性後向方法。
- 形狀:
輸入: ,其中 表示任意數量的維度。
目標:,與輸入的形狀相同。
輸出:標量。如果
reduction是'none',那麽 ,與輸入的形狀相同。
例子:
>>> m = nn.Sigmoid() >>> loss = nn.BCELoss() >>> input = torch.randn(3, requires_grad=True) >>> target = torch.empty(3).random_(2) >>> output = loss(m(input), target) >>> output.backward()
參數:
相關用法
- Python PyTorch BCEWithLogitsLoss用法及代碼示例
- Python PyTorch Bernoulli用法及代碼示例
- Python PyTorch Binomial用法及代碼示例
- Python PyTorch BucketBatcher用法及代碼示例
- Python PyTorch BatchSampler用法及代碼示例
- Python PyTorch BatchNorm1d用法及代碼示例
- Python PyTorch Bilinear用法及代碼示例
- Python PyTorch BatchNorm3d用法及代碼示例
- Python PyTorch Batcher用法及代碼示例
- Python PyTorch Beta用法及代碼示例
- Python PyTorch BatchNorm2d用法及代碼示例
- Python PyTorch frexp用法及代碼示例
- Python PyTorch jvp用法及代碼示例
- Python PyTorch cholesky用法及代碼示例
- Python PyTorch vdot用法及代碼示例
- Python PyTorch ELU用法及代碼示例
- Python PyTorch ScaledDotProduct.__init__用法及代碼示例
- Python PyTorch gumbel_softmax用法及代碼示例
- Python PyTorch get_tokenizer用法及代碼示例
- Python PyTorch saved_tensors_hooks用法及代碼示例
- Python PyTorch positive用法及代碼示例
- Python PyTorch renorm用法及代碼示例
- Python PyTorch AvgPool2d用法及代碼示例
- Python PyTorch MaxUnpool3d用法及代碼示例
- Python PyTorch Tensor.unflatten用法及代碼示例
注:本文由純淨天空篩選整理自pytorch.org大神的英文原創作品 torch.nn.BCELoss。非經特殊聲明,原始代碼版權歸原作者所有,本譯文未經允許或授權,請勿轉載或複製。
