BCELoss BCEWithLogitsLoss以及参数weight

在进行pytorch编写程序过程中,会发现loss有两种相对较相似的或是看起来就是一类loss的函数,即BCELoss和BCEWithLogitsLoss,下面简单的描述一下。

首先,BCELoss创建一个标准来度量目标和输出之间的二元交叉熵,即对一个batch里面的数据做二元交叉熵并且求平均。BCELoss函数的形式如下:

CLASS torch.nn.BCELoss(weight=None, size_average=None, reduce=None, reduction='mean')

其中,

weight: 给每个batch元素的权重,一般没用;不一般情况下非常有用,如果训练样本不均衡,或者输出重要性不同时可以设置权重。举例:

样本不均衡:在覆冰预测中,样本中覆冰数据和未覆冰数据比例未1:26,这时可以设置权重:

weight=torch.one(b,class)

weight[t=0]=1/26 #设置未覆冰权重为1/26

输出重要性不同:在目标检测中,检测到目标是背景的重要性较小

weight=torch.one(b,classes) #classes = 0:背景 1,2,3,4,5,6

weight[:,0]=1/10 #背景权重为1/10

size_average: 默认为True;
reduce: True/False 默认为True,对每个minibatch做;
reduction: 指定返回各损失值,批损失均值,批损失和,默认返回批损失均值,用的比较多的是这个参数。
再次,BCEWithLogitsLoss函数是将Sigmoid层和BCELoss合并在一个类中,在数值上比使用一个简单的Sigmoid和一个BCELoss,通过将操作合并到一个层中,其利用log-sum-exp技巧来实现数值稳定性。具体形式如下:

CLASStorch.nn.BCEWithLogitsLoss(weight=None, size_average=None, reduce=None, reduction='mean', pos_weight=None)

实质上,BCELoss与BCEWithLogitsLoss差了一个Sigmoid函数。
 

  • 9
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
跑步减肥 Google Play上唯一一款专为减肥而设计的应用程序。让您的跑步服务于您的目标! 在8个星期内减少。 Google Play上唯一一款专为减肥而设计的应用程序。让您的跑步服务于您的目标!精选华盛顿邮报,AppleInsider和赫芬顿邮报。 特别适用于减重:运行,行走和冲刺间隔的独特间隔计划,以实现最大卡路里燃烧。 - 从6个培训课程中选择,总长度为48周; - 3个难度级别:初级,中级和高级; - 2个月的培训计划,每周3次锻炼。 每个项目的培训计划:针对不同目标和健身水平的更多培训计划,以使您的锻炼多样化。 - 跑步减肥; - 跑5K; - 跑10K; - 开始跑步; - 散步减肥。 方便的训练:你需要的只是在锻炼期间尽力而为,应用程序将完成剩下的工作。 - 5位不同的教练 - 选择您的私人教练,从甜蜜和鼓励到坚韧和军事风格; - 每次培训的详细音频说明; - 运行期间的语音鼓励和统计信息更新; - 可调节的音频反馈量。 详细统计:记录每项锻炼并跟踪您的整体进度。 - 监控您的距离,时间,步伐和步数; - 每次锻炼的GPS地图; - 准确的卡路里计数; - 手动编辑跑步机跑步者的日志; - 与Fitbit,Runkeeper同步。 COOL RUNNING MUSIC:听取健身音乐,将结果提高15%,动力提高35%。 - 来自才华横溢的DJ的1000多种混音; - 每天都有新的混合物; - 所有类型 - 从古典和老歌到摇滚,嘻哈和R&B。 饮食:获得特别量身定制的饮食和运动计划,以快速减肥。 - 按步骤说明享受数百种美味食谱; - 每天在早餐,午餐,晚餐和小吃中学习吃什么,以便做出持续健康的选择; - 遵循足够维生素和微量元素的健康,营养均衡的饮食; - 使用我们的水跟踪器提醒保持水分。 更多:其他许多很酷的功能可以让您的跑步锻炼更有效并提升您的表现。 - 关于培训,服装,营养等方面的数十个有用技巧; - 在Facebook和Twitter上与朋友分享您的正在运行的统计数据和路线。 优惠:通过高级订阅,更快,更轻松地实现结果并将您的锻炼变为真正的乐趣。 - 选择5种不同的教练 - 从漂亮和友好到坚韧和军事风格; - 解锁所有减肥计划 - 连续48周的间歇训练; - 聆听专为跑步而创作的酷炫音乐混音 - 适合任何品味的所有类型; - 从应用中删除所有广告。 注意:继续使用GPS在后台运行可能会大大缩短电池寿命。 此应用程序仅用于提供信息。在开始任何健身计划之前,您必须始终咨询您的医生或医生。 什么是新的 我们尽最大努力通过新的更新使应用程序更好。 技术更正和设计改进。 有任何问题或建议吗?
torch.nn.BCELoss是PyTorch中的一个损失函数,用于二分类问题中,计算二值交叉熵损失。对于输入的预测值和目标值,该函数将其进行Sigmoid激活并计算二值交叉熵损失。 BCELoss函数的参数包括weight、size_average。weight是用于样本加权的张量,size_average是一个布尔值,指定是否对损失进行平均。 使用BCELoss的步骤如下: 1. 首先,创建一个BCELoss的实例。 2. 然后,将网络的输出通过Sigmoid激活。 3. 接着,将Sigmoid激活后的输出和目标值作为参数传入BCELoss函数。 4. 最后,调用BCELoss函数,即可得到计算的二值交叉熵损失。 该损失函数的值越小,表示预测结果与目标值的差距越小,模型的性能也越好。<span class="em">1</span><span class="em">2</span><span class="em">3</span> #### 引用[.reference_title] - *1* *2* [torch.nn.BCELoss](https://blog.csdn.net/weixin_41978699/article/details/120589510)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_2"}}] [.reference_item style="max-width: 50%"] - *3* [Pytorch中torch.nn的损失函数](https://download.csdn.net/download/weixin_38747144/13743344)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_2"}}] [.reference_item style="max-width: 50%"] [ .reference_list ]

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值