loss的热图编码output与label的计算——即pytorch的nn.CrossEntropyLoss

仅作为记录,大佬请跳过。

文章目录

背景

在这里插入图片描述
output是每一类对应一个概率值
label是其中一类
nn.CrossEntropyLoss是怎么计算

在这里插入图片描述

代码

import torch
import torch.nn as nn
import math

criterion = nn.CrossEntropyLoss()
output = torch.randn(1, 5, requires_grad=True)
label = torch.empty(1, dtype=torch.long).random_(5)
loss = criterion(output, label)

# print("网络输出为5类:")
print(output)
# print("要计算label的类别:")
print(label)
# print("计算loss的结果:")
print(loss)
first = 0
for i in range(1):
    first = -output[i][label[i]]
    print(first)
second = 0
for i in range(1):
    for j in range(5):
        second += math.exp(output[i][j])
res = 0
res = (first + math.log(second))
print("自己的计算结果:")
print(res)
math.exp(0.4045)+math.exp(-1.2018)+math.exp(-0.0459)+math.exp(1.3131)+math.exp(0.3205)
math.log(math.exp(0.4045)+math.exp(-1.2018)+math.exp(-0.0459)+math.exp(1.3131)+math.exp(0.3205))
-0.4045+math.log(math.exp(0.4045)+math.exp(-1.2018)+math.exp(-0.0459)+math.exp(1.3131)+math.exp(0.3205))

参考

感谢大佬博主文章传送门

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值