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

相关推荐
ZzzZ3141592632 分钟前
七天速成数字图像处理之七(颜色图像处理基础)
图像处理·人工智能·深度学习·计算机视觉·数学建模
ThePPP_FTS1 小时前
【AAAI2025】时间序列|Affirm:交互式Mamba,长时序预测天花板?
人工智能·深度学习·时间序列
芳菲菲其弥章2 小时前
【数据分析五:Feature Engineering】特征工程
人工智能·深度学习·数据分析
Jay Kay2 小时前
Muon:神经网络隐藏层的革命性优化器
人工智能·神经网络·机器学习
研一计算机小白一枚3 小时前
PyTorch 入门学习笔记
pytorch·学习
黑客笔记3 小时前
Bugku-CTF-web
大数据·前端·深度学习·web安全
Ai财富密码8 小时前
机器学习 (ML) 基础入门指南
人工智能·神经网络·机器学习·机器人·ml
m0_537437579 小时前
【深度学习基础与概念】笔记(一)深度学习革命
人工智能·笔记·深度学习
W说编程9 小时前
算法导论第二十四章 深度学习前沿:从序列建模到创造式AI
c语言·人工智能·python·深度学习·算法·性能优化
大模型铲屎官10 小时前
【深度学习-Day 31】CNN基石:彻底搞懂卷积层 (Convolutional Layer) 的工作原理
人工智能·pytorch·python·深度学习·机器学习·cnn·llm