nn.BCEWithLogitsLoss中weight参数和pos_weight参数的作用及用法

这篇具有很好参考价值的文章主要介绍了nn.BCEWithLogitsLoss中weight参数和pos_weight参数的作用及用法。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

weight参数

nn.BCEWithLogitsLoss中weight参数和pos_weight参数的作用及用法,pytorch,pytorch,深度学习,人工智能
上式是nn.BCEWithLogitsLoss损失函数的计算公式,其中w_n对应weight参数。
如果我们在做多分类任务,有些类比较重要,有些类不太重要,想要模型更加关注重要的类别,那么只需将比较重要的类所对应的w权重设置大一点,不太重要的类所对应的w权重设置小一点。
下面是一个代码演示:

	import torch
    import torch.nn as nn

    device = torch.device("cuda:0" if torch.cuda.is_available() else "cpu")
    a = torch.tensor([[1.0, 2.0],[1.0,2.0]])
    m = nn.Sigmoid()
    b = torch.Tensor([[0, 1],[0,1]])
    loss_function = nn.BCEWithLogitsLoss()
    loss_function1 = nn.BCEWithLogitsLoss(weight=torch.tensor([0, 1.0]))
    loss_function2 = nn.BCEWithLogitsLoss(weight=torch.tensor([1.0, 0]))
    loss_function3 = nn.BCEWithLogitsLoss(weight=torch.tensor([1.0, 1.0]))
    loss_function4 = nn.BCEWithLogitsLoss(weight=torch.tensor([1.0, 2.0]))
    loss = loss_function(a, b)
    loss1 = loss_function1(a, b)
    loss2 = loss_function2(a, b)
    loss3 = loss_function3(a, b)
    loss4 = loss_function4(a, b)
    print(loss, loss1, loss2, loss3, loss4)

运行结果:
nn.BCEWithLogitsLoss中weight参数和pos_weight参数的作用及用法,pytorch,pytorch,深度学习,人工智能
其中[1.0, 2.0]经过sigmoid层之后的值是[0.7311,0.8808]
对于loss的计算过程如下所示:
nn.BCEWithLogitsLoss中weight参数和pos_weight参数的作用及用法,pytorch,pytorch,深度学习,人工智能

pos_weight参数

nn.BCEWithLogitsLoss中weight参数和pos_weight参数的作用及用法,pytorch,pytorch,深度学习,人工智能
其中pos_weight对应上式公式中的p_c,这个参数是为了调节正负样本不均衡问题的,如果正负样本比是10:1,那么我们可以将p_c设置为1/10来平衡正负样本。文章来源地址https://www.toymoban.com/news/detail-817993.html

到了这里,关于nn.BCEWithLogitsLoss中weight参数和pos_weight参数的作用及用法的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • send()函数的用法;MSG_NOSIGNAL什么含义?有什么作用?以及flags中参数类型有哪些各自又起到什么作用?

    目录  1.send()函数的基本用法(入门级): 2.MSG_NOSIGNAL什么含义?有什么作用? 3.send()函数中第4个flags中参数类型有哪些各自又起到什么作用? send() 函数是一个用于在 TCP/IP 网络上发送数据的系统调用函数。它通常在客户端和服务器端程序中被使用。 send() 函数的语法如下: 其

    2024年02月07日
    浏览(43)
  • 权重衰减weight_decay参数从入门到精通

    Weight Decay是一个正则化技术,作用是 抑制模型的过拟合 ,以此来提高模型的泛化性。 目前网上对于Weight Decay的讲解都比较泛,都是短短的几句话,但对于其原理、实现方式大多就没有讲解清楚,本文将会逐步解释weight decay机制。 Weight Decay是一个正则化技术,作用是 抑制模

    2024年02月02日
    浏览(43)
  • Pytorch当中nn.Identity()层的作用

    在深度学习中, nn.Identity() 是 PyTorch 中的一个层(layer)。 它实际上是一个恒等映射,不对输入进行任何变换或操作,只是简单地将输入返回作为输出。 通常在神经网络中,各种层(比如全连接层、卷积层、池化层等)都会对输入数据执行某种转换或提取特征。然而, nn.I

    2024年02月05日
    浏览(31)
  • pytorch nn.ModuleList和nn.Sequential的用法笔记

    有部分内容转自: pytorch小记:nn.ModuleList和nn.Sequential的用法以及区别_慕思侣的博客-CSDN博客 但是有部分内容做了修改调整, 在构建网络的时候,pytorch有一些基础概念很重要,比如nn.Module,nn.ModuleList,nn.Sequential,这些类我们称为为容器(containers),可参考containers。本文中

    2024年02月13日
    浏览(40)
  • pytorch复习笔记--nn.Embedding()的用法

    目录 1--nn.Embedding()的用法 2--实例展示: 3--注意的问题 nn.Embedding()产生一个权重矩阵weight,其shape为(num_embeddings, embedding_dim),表示生成num_embeddings个具有embedding_dim大小的嵌入向量; 输入input的形状shape为(batch_size, Seq_len),batch_size表示样本数(NLP句子数),Seq_len表示序列

    2024年02月16日
    浏览(34)
  • nn.Dropout随机丢神经元的用法

    前言: pytorch与tensorflow中均有nn.dropout,两者之间的使用方法,下面将介绍。 说明文档: 大致的翻译: 在训练期间, 随机地将输入的一些元素归零 ,以概率为`p`,使用伯努利分布的样本。每个通道将在每次前向调用时被独立清零。 这已被证明是一种有效的正则化技术,可以

    2024年01月18日
    浏览(30)
  • Pytorch:torch.nn.Module.apply用法详解

    torch.nn.Module.apply 是 PyTorch 中用于递归地应用函数到模型的所有子模块的方法。它允许对模型中的每个子模块进行操作,比如初始化权重、改变参数类型等。 以下是关于 torch.nn.Module.apply 的示例: 1. 语法 Module:PyTorch 中的神经网络模块,例如 torch.nn.Module 的子类。 fn:要应用到

    2024年01月15日
    浏览(49)
  • 【Pytorch】三维卷积 nn.Conv3d 用法

    nn.Conv3d 是 PyTorch 中实现三维卷积操作的类。 其输入和输出的维度如下: 输入维度: 输入张量的维度应为 (N, C_in, D, H, W) ,其中: N : 批量大小 (batch size),即一批输入数据中包含的样本数量。 C_in : 输入通道数 (number of input channels),即输入数据的通道数量,例如彩色图像通常

    2024年02月05日
    浏览(49)
  • pytorch中 nn.Conv2d的简单用法

    参数介绍 : in_channels :卷积层输入通道数 out_channels :卷积层输出通道数 kernel_size :卷积层的卷积核大小 padding :填充长度 stride :卷积核移动的步长 dilation :是否采用空洞卷积 groups :是否采用分组卷积 bias :是否添加偏置参数 padding_mode : padding 的模式 如果输入大小为:

    2024年02月11日
    浏览(40)
  • torch.nn.functional.normalize参数说明

    公式为 v max ⁡ ( ∥ v ∥ p , ϵ ) frac{v}{max(lVert v rVert_p, epsilon)} max (∥ v ∥ p ​ , ϵ ) v ​ F.normalize(data, p=2/1, dim=0/1/-1) 将某一个维度除以那个维度对应的范数(默认是2范数) input:输入的数据(tensor) p:L2/L1_norm运算,(默认是2范数) dim:0表示按列操作,则每列都是除以该列下平方

    2024年02月05日
    浏览(36)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包