CBOW中关于 NLLLoss 的含义

本文通过实践探讨了NLLLoss在CBOW模型中的作用。作者使用nn.NLLLoss作为损失函数,发现当输出数组中值最接近0的下标对应于目标值。这种观察为理解NLLLoss如何在训练过程中最小化误差提供了直观解释。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

CBOW相当于填字游戏, 学习CBOW的时候对NLLLoss的一点研究:
NLLLoss的定义是一大堆公式, 没有仔细学习, 用实践法研究一下其作用:

criterion = nn.NLLLoss()

loss = criterion(out, target)

在本例中, 其中 out 是一个数组(list), target 是一个float张量
out 的长度代表了 字典的长度.
print(out)
tensor([[-6.7951, -3.5001, -6.4829, -5.4005, -6.5381, -3.1883, -3.9513, -4.2790,
-6.8641, -6.7017, -5.5150, -5.2415, -5.0595, -0.5234, -5.9353, -3.8215,
-5.7704, -6.4269, -4.9297, -5.0495, -6.1361, -6.2943, -7.2959, -3.6133,
-5.6585, -3.4199, -6.0891, -6.1402, -6.4806, -5.5290, -5.9832, -4.9311,
-6.0941, -7.0798, -5.2637, -4.5294, -6.1587, -4.9618, -5.3551, -2.5602,
-6.7787, -5.6728, -4.7116, -5.1451, -6.3173, -4.9062, -5.8129, -6.2326,
-6.0875]], device=‘cuda:0’, grad_fn=)
print(target)
tensor([13], device=‘cuda:0’)
可以发发现 下标 13 位置的数值 -0.5234 是所有数组里最接近0的.

所以猜测, NLLLoss 所有数组里最接近0的下标, 就是target的数值.

多个结果均符合猜测

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值