当前位置: 首页 > article >正文

如何理解BCEWithLogitsLoss()

1.示例1 

logit=[0.5 -1.0 2.0]
targets=[1 0 1]

# δ=sigmoid(x)
p=δ(logits)=[δ(0.5) δ(-1.0) δ(2.0)]=[0.6225 0.2689 0.8808]

loss1 = -[1 · log(0.6225) + 0 · log(1 - 0.6225)] ≈ 0.4744
loss2 = -[0 · log(0.2689) + 1 · log(1 - 0.2689)] ≈ 0.3133
loss3 = -[1 · log(0.8808) + 0 · log(1 - 0.8808)] ≈ 0.1269

total_loss = loss1 + loss2 + loss3 ≈ 0.4744 + 0.3133 + 0.1269 = 0.9143

2.分布计算演示 

import torch

logits = torch.tensor([[0.5], [-1.0], [2.0]], dtype=torch.float32)
targets = torch.tensor([[1.0], [0.0], [1.0]], dtype=torch.float32)

probs = torch.sigmoid(logits)

# Use the formula: - [ y * log(p) + (1 - y) * log(1 - p) ]
loss_per_sample = - (targets * torch.log(probs) + (1 - targets) * torch.log(1 - probs))

total_loss = torch.sum(loss_per_sample)

print(total_loss.item())
# 0.9142667055130005

3.BCEWithLogitsLoss实现 

import torch
import torch.nn as nn

# Define logits and targets
logits = torch.tensor([[0.5], [-1.0], [2.0]], dtype=torch.float32)
targets = torch.tensor([[1.0], [0.0], [1.0]], dtype=torch.float32)

# Define the loss function
loss_fn = nn.BCEWithLogitsLoss(reduction='sum')

# Compute the loss
loss = loss_fn(logits, targets)
print(loss.item())
# 0.9142667055130005


http://www.kler.cn/news/309420.html

相关文章:

  • 什么是期权日内交易?怎么做日内期权策略?
  • MyBatis 源码解析:Mapper 文件加载与解析
  • 导弹追踪问题:蒙特卡罗模拟+matlab代码
  • Linux7-su,exit,sudo
  • Java 中的 sleep、wait、join 怎么理解
  • linux中的kill、pkill和killall
  • C++速通LeetCode简单第3题-相交链表
  • RTMP协议在无人机巡检中的应用场景
  • 【深度学习】【OnnxRuntime】【Python】模型转化、环境搭建以及模型部署的详细教程
  • Java学习线路(2024版)
  • 简单了解微服务--黑马(在更)
  • 安全运维教程(非常详细)从零基础入门到精通,看完这一篇就够了
  • 【Pycharm使用技巧记录手册】批量检索与替换功能——辅助Yolo训练标签label配置文件构建
  • Mac笔记本上查看/user/目录下的文件的几种方法
  • mysql配置优化和分组报错问题解决
  • 信号与线性系统综合实验
  • 87-java 可轮询锁和定时锁
  • 网络安全宣传周的时间,举办活动的方式和意义
  • 计算机毕业设计公交站点线路查询网站登录注册搜索站点线路车次/springboot/javaWEB/J2EE/MYSQL数据库/vue前后分离小程序
  • 场外个股期权通道商是什么业务?个人投资者可以参与场外期权吗?
  • JavaScript ES6特性(var let const、function=>、增强表达赋值、类与对象)
  • 【大模型专栏—进阶篇】语言模型创新大总结——“三派纷争”
  • 微信小程序点赞动画特效实现
  • [乱码]确保命令行窗口与主流集成开发环境(IDE)统一采用UTF-8编码,以规避乱码问题
  • C++学习笔记(25)
  • TypeScript —枚举的应用
  • “拍照赚钱”的任务定价(2017数学建模国赛b题)
  • 中国农业银行——数据湖建设
  • 5V全桥驱动芯片单通道可替代型号LG9110S,应用于牙刷,电子锁,共享单车锁等产品中具有过温保护功能
  • Python模块化程序设计理念及实战