pytorch nn.BCELoss()詳解

官方鏈接看這裏

由於中文版的掛了,這裏先放英文版的
這裏講的是默認對一個batch裏面的數據做二元交叉熵並且求平均。
在這裏插入圖片描述

參數說明

  1. weight: 給每個batch元素的權重,一般沒用
  2. size_average: 默認爲True
  3. reduce: True/False 默認爲True,對每個minibatch做
  4. reduction: 用的比較多的是這個,若用了2.3可能導致4失效。

在這裏插入圖片描述

shape描述

input與target都是一樣的size
在這裏插入圖片描述

官方實例

>>> 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()

運行結果

import torch.nn as nn
m = nn.Sigmoid()
loss = nn.BCELoss()
input = torch.randn(3, requires_grad=True)
input
Out[21]: tensor([-0.6212, -0.9684,  0.6923], requires_grad=True)
target = torch.empty(3)
target
Out[23]: tensor([-1.5901e-30,  4.5907e-41,  0.0000e+00])
target = target.random_(2)
target
Out[25]: tensor([1., 0., 1.])
output = loss(m(input), target)
output
Out[27]: tensor(0.5929, grad_fn=<BinaryCrossEntropyBackward>)
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章