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有很大区别**

相关推荐
xier_ran1 小时前
【BUG问题】5060Ti显卡Windows配置Anaconda中的CUDA及Pytorch,sm_120问题
人工智能·pytorch·windows
python零基础入门小白1 小时前
Transformer、Token、RAG全解析,一篇读懂大模型核心机制!
人工智能·深度学习·学习·语言模型·大模型·transformer·产品经理
hhzz2 小时前
(深度学习/计算机视觉)手把手教你从零部署YOLOv8目标检测算法-----YOLOV8原理介绍(1/5)
深度学习·yolo·计算机视觉
AI医影跨模态组学2 小时前
(综述)J Transl Med 浙江大学医学院附属第二医院等团队:放射组学在胶质母细胞瘤复发中的应用:预测、定位及与治疗相关效应鉴别的进展
人工智能·深度学习·医学·医学影像·影像组学
源于花海2 小时前
模型独立的学习方式——自训练
深度学习·机器学习·自训练
隐层漫游者3 小时前
2026深度学习硬核通关:从自动微分Autograd到激活函数全景图解,一文看懂神经网络的“灵魂”与“骨架”
深度学习
郝学胜-神的一滴4 小时前
深度学习损失函数:从原理到实战之 Smooth L1 Loss
人工智能·pytorch·python·深度学习·机器学习·数据挖掘
ForDreamMusk4 小时前
卷积层
人工智能·深度学习
高洁014 小时前
AI项目管理实战:从开发到交付的全流程管控
深度学习·机器学习·数据挖掘·transformer·知识图谱
joshchen2154 小时前
强化学习基础(赵世钰)第一章
人工智能·深度学习·算法·机器学习·强化学习