负对数似然的缩减参数

在PyTorch的负对数似然损失函数中,缩减参数的直观解释是什么?该参数可以取值为’mean’或’sum’。它是在对批次中的元素进行求和吗?

torch.nn.functional.nll_loss(outputs.mean(0), target, reduction="sum")

回答:

根据文档说明:

指定对输出的缩减方式:’none’ | ‘mean’ | ‘sum’。’none’:不进行缩减,’mean’:输出之和将除以输出中的元素数量,’sum’:对输出求和。注意:size_average和reduce参数正在被废弃,暂时指定这两个参数中的任何一个将覆盖reduction参数。默认值为’mean’

如果你使用’none’,输出将与批次大小相同,

如果你使用’mean’,将是平均值(总和除以批次大小),

如果你使用’sum’,将是所有元素的总和。

你也可以通过以下代码进行验证:

import torch logit = torch.rand(100,10)target = torch.randint(10, size=(100,)) m = torch.nn.functional.nll_loss(logit, target)s = torch.nn.functional.nll_loss(logit, target, reduction="sum") l = torch.nn.functional.nll_loss(logit, target, reduction="none")print(torch.abs(m-s/100))print(torch.abs(l.mean()-m))

输出的结果应该是0或非常接近0。

Related Posts

在使用k近邻算法时,有没有办法获取被使用的“邻居”?

我想找到一种方法来确定在我的knn算法中实际使用了哪些…

Theano在Google Colab上无法启用GPU支持

我在尝试使用Theano库训练一个模型。由于我的电脑内…

准确性评分似乎有误

这里是代码: from sklearn.metrics…

Keras Functional API: “错误检查输入时:期望input_1具有4个维度,但得到形状为(X, Y)的数组”

我在尝试使用Keras的fit_generator来训…

如何使用sklearn.datasets.make_classification在指定范围内生成合成数据?

我想为分类问题创建合成数据。我使用了sklearn.d…

如何处理预测时不在训练集中的标签

已关闭。 此问题与编程或软件开发无关。目前不接受回答。…

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注