gpt4 book ai didi

python - 了解使用 Pytorch 训练神经网络时类的使用

转载 作者:行者123 更新时间:2023-12-01 00:35:12 24 4
gpt4 key购买 nike

我目前正在阅读有关使用交叉熵损失来训练神经网络的文章 pytorch documentation 。用于计算损失的标准调用如下

criterion = nn.CrossEntropyLoss()

根据torch.nn documentation , CrossEntropyLoss 是一个类。根据我的理解,这意味着 criterionnn.CrossEntropyLoss 类型的对象。

训练神经网络时,使用criterion按以下方式计算损失

loss = criterion(input, target)

这让我有些困惑。 如果 criterion 是一个对象,那么它如何用作函数?我期望的是这样的

loss = criterion.calculate_loss(input, target)

其中 calculate_loss()nn.CrossEntropyLoss 类中定义的方法。此外,文档还使用了以下代码行

running_loss += loss.item()

这个item()方法来自哪里?我在网上找不到提及 item() 的来源。

最佳答案

If criterion is an object, then how can it be used as a function?

标准对象有一个在这种情况下调用的forward方法。 criterion(input, target)criterion.forward(input, target)

的简写

Where does this item() method come from?

此方法返回一维张量。可以使用 item() 将单个值作为数字进行访问。

关于python - 了解使用 Pytorch 训练神经网络时类的使用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57842400/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com