[英]Understanding the use of classes when training a neural network with Pytorch
我目前正在pytorch文檔中閱讀有關使用交叉熵損失訓練神經網絡的信息 。 用於計算損失的標准稱為:
criterion = nn.CrossEntropyLoss()
根據torch.nn
文檔 , CrossEntropyLoss
是一個類。 根據我的理解,這意味着criterion
是nn.CrossEntropyLoss
類型的對象。
在訓練神經網絡時,使用criterion
以以下方式計算損失
loss = criterion(input, target)
這讓我有些困惑。 如果 criterion
是一個對象,那么如何將其用作功能? 我希望是這樣的
loss = criterion.calculate_loss(input, target)
其中calculate_loss()
是在nn.CrossEntropyLoss
類中定義的方法。 此外,文檔還使用以下代碼行
running_loss += loss.item()
這個item()
方法從何而來? 我找不到在線提及item()
的來源。
如果條件是一個對象,那么如何將其用作功能?
在這種情況下,標准對象具有forward
方法。 criterion(input, target)
是criterion.forward(input, target)
簡寫。
這個item()方法從何而來?
此方法返回一維Tensor
。 可以使用item()
將單個值作為數字訪問。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.