PyTorch中CrossEntropyLoss、BCELoss、BCEWithLogitsLoss的理解

import torch

predict =torch.Tensor([[0.5796,0.4403,0.9087],[-1.5673,-0.3150,1.6660]])

#predict =torch.Tensor([[0.5796,0.4403],[-1.5673,-0.3150]])

print(predict)

target =torch.tensor([0,2])

target_bce =torch.Tensor([[1,0,0],[0,0,1]])

ce_loss=torch.nn.CrossEntropyLoss()

soft_max=torch.nn.Softmax(dim=-1)

sig_max=torch.nn.Sigmoid()

soft_out=soft_max(predict)

sig_out=sig_max(predict)

bce_loss=torch.nn.BCELoss()

bce_loss1=torch.nn.BCEWithLogitsLoss()

print(ce_loss(predict,target))

print(bce_loss(soft_out,target_bce))

print(bce_loss(sig_out,target_bce))

print(bce_loss1(predict,target_bce))

输出:

#predict:

**tensor([[ 0.5796, 0.4403, 0.9087],

-1.5673, -0.3150, 1.6660\]\])** #print(ce_loss(predict,target)): **tensor(0.6725)** #print(bce_loss(soft_out,target_bce)) **tensor(0.3950)** #print(bce_loss(sig_out,target_bce)) **tensor(0.5900)** print(bce_loss1(predict,target_bce)) **tensor(0.5900)** **结论:** **1.sigmoid激活+BCELoss等于BCEWithLogitsLoss** **2.BCEWithLogitsLoss和CrossEntropyLoss不一样,但都可以不加激活** **3.sigmoid激活+BCELoss和softmax激活+BCELoss有很大区别**

相关推荐
理想是做全栈工程师6 分钟前
基于UNet的带噪黑白数字图像分割模型
人工智能·pytorch·python·anaconda
永远都不秃头的程序员(互关)10 分钟前
Transformer模型情感分析实战指南
人工智能·深度学习
Hcoco_me22 分钟前
大模型面试题73:简单介绍下GRPO的训练流程。
人工智能·深度学习·机器学习·chatgpt·机器人
Hcoco_me28 分钟前
大模型面试题77:你在训练GRPO和DPO的时候使用了什么强化学习框架?
人工智能·深度学习·机器学习·chatgpt·机器人
姚瑞南30 分钟前
【AI 风向标】强化学习(RL):智能体自我优化的学习范式
人工智能·经验分享·python·gpt·深度学习·学习·机器学习
AI即插即用37 分钟前
超分辨率重建(代码实践) | CVPR 2025 LSRNA:利用隐空间超分与噪声对齐,打破扩散模型生成 4K 图像的效率瓶颈
图像处理·人工智能·深度学习·神经网络·计算机视觉·超分辨率重建
盼小辉丶41 分钟前
PyTorch实战(23)——基于Transformer生成音乐
pytorch·深度学习·transformer·生成模型
后端小张42 分钟前
【AI 学习】解锁Claude Skills:开启AI应用新维度
人工智能·深度学习·学习·自然语言处理·gpt-3·claude·skill
WangYaolove13149 小时前
基于深度学习的中文情感分析系统(源码+文档)
python·深度学习·django·毕业设计·源码
软件算法开发9 小时前
基于改进麻雀优化的LSTM深度学习网络模型(ASFSSA-LSTM)的一维时间序列预测算法matlab仿真
深度学习·matlab·lstm·一维时间序列预测·改进麻雀优化·asfssa-lstm