loss函数之MultiLabelSoftMarginLoss
MultiLabelSoftMarginLoss
不知道pytorch为什么起这个名字,看loss计算公式,并没有涉及到margin,有可能后面会实现。按照我的理解其实就是多标签交叉熵损失函数,验证之后也和BCEWithLogitsLoss
的结果输出一致,使用的torch版本为1.5.0
例子:
import torch
import torch.nn.functional as F
import torch.nn as nn
import mathdef validate_MultiLabelSoftMarginLoss(input, target):val = 0for li_x, li_y in zip(input, target):for x, y in zip(li_x, li_y):norm_x = torch.sigmoid(x)loss_val = y * math.log(norm_x, math.e) + (1 - y) * math.log(1 - norm_x, math.e)val += -loss_valreturn val / input.nelement()loss = nn.MultiLabelSoftMarginLoss()
x = torch.FloatTensor([[0.1, 0.2, 0.4, 0.8]])
print(x.size())
y = torch.FloatTensor([[3, 0, -1, 1]])
print(y.size())
loss_val = loss(x, y)
print(loss_val.item())validate_loss = validate_MultiLabelSoftMarginLoss(x, y)
print(validate_loss.item())loss = torch.nn.BCEWithLogitsLoss()
ouput = torch.sigmoid(x)
loss_val = loss(x, y)
print(loss_val.item())
输出结果:
torch.Size([1, 4])
torch.Size([1, 4])
0.7316628694534302
0.7316628694534302
0.7316628694534302
loss函数之MultiLabelSoftMarginLoss相关推荐
- 【Dual-Path-RNN-Pytorch源码分析】loss函数:SI-SNR
DPRNN使用的loss函数是 SI-SNR SI-SNR 是scale-invariant source-to-noise ratio的缩写,中文翻译为尺度不变的信噪比,意思是不受信号变化影响的信噪 ...
- tensorflow学习(4.loss函数以及正则化的使用 )
本文还是以MNIST的CNN分析为例 loss函数一般有MSE均方差函数.交叉熵损失函数,说明见 https://blog.csdn.net/John_xyz/article/details/6121 ...
- 多分类loss函数本质理解
一.面对一个多分类问题,如何设计合理的损失函数呢? 1.损失函数的本质在数学上称为目标函数:这个目标函数的目标值符合最完美的需求:损失函数的目标值肯定是0,完美分类的损失必然为0 : 2.损失函数分为 ...
- 深度学习基础(三)loss函数
loss函数,即损失函数,是决定网络学习质量的关键.若网络结构不变的前提下,损失函数选择不当会导致模型精度差等后果.若有错误,敬请指正,Thank you! 目录 一.loss函数定义 二.常见的lo ...
- Keras自定义Loss函数
Keras作为一个深度学习库,非常适合新手.在做神经网络时,它自带了许多常用的目标函数,优化方法等等,基本能满足新手学习时的一些需求.具体包含目标函数和优化方法.但它也支持用户自定义目标函数,下边介绍 ...
- 商汤使用AutoML设计Loss函数,全面超越人工设计
点击我爱计算机视觉标星,更快获取CVML新技术 深度学习领域,神经架构搜索得到的算法如雨后春笋般出现. 今天一篇arXiv论文<AM-LFS: AutoML for Loss Function ...
- 深度学习中的损失函数总结以及Center Loss函数笔记
北京 上海巡回站 | NVIDIA DLI深度学习培训 2018年1月26/1月12日 NVIDIA 深度学习学院 带你快速进入火热的DL领域 阅读全文 ...
- 'int' object has no attribute 'backward'报错 使用Pytorch编写 Hinge loss函数
在编写SVM中的Hinge loss函数的时候报错"'int' object has no attribute 'backward'" for epoch in range(50) ...
- 《深度学习笔记》——loss函数的学习笔记
1 loss的作用 在南溪看来,loss函数是对目标target和预测prediction之间的一种距离度量的公式: 2 loss函数的设计原则 此设计原则参考了距离的定义,(注意:距离跟范数是两个概 ...
最新文章
- JVM GC 日志详解
- maven的pom报plugins错误的解决方法.
- 完整的一次 HTTP 请求响应过程(二)
- 【已解决】Linux redhat 6.4上安装VNC Server
- linux 命令大全_干货分享:Linux命令大全
- 主机甲和主机乙之间已建立一个TCP连接,TCP最大段长为1000B。若主机甲的当前拥塞窗口为4000B,在主机甲向主机乙连续发送两个最大段后,成功收到主机乙发送的第一个段的确认段,确认段中通告的接收窗
- 腾讯云服务器的环境配置与使用
- 28. 字符串的排列(C++版本)
- matlab与comsol的连接
- maplibre显示经纬线,(动态若干条)
- 股票爬取接口如何获取股票实时行情数据?
- RationalDMIS 2020高级教程之变量写入EXCEL
- java图片压缩、图片缩放
- 【大数据 BI】传统BI流程
- Java项目如何优雅的对接口入参进行校验-看法外狂徒张三浏览18网站失败
- 十年前的知识产权战争 | 历史上的今天
- allegro 倒圆角
- 数字化孪生管理平台运用现状及技术前景
- python 声音基频f0_ASR中常用的语音特征之FBank和MFCC(原理 + Python实现)
- 最近搞的AGV调度控制中心