在Pytorch中使用样本权重(sample_weight)的正确方法


Posted in Python onAugust 17, 2019

step:

1.将标签转换为one-hot形式。

2.将每一个one-hot标签中的1改为预设样本权重的值

即可在Pytorch中使用样本权重。

eg:

对于单个样本:loss = - Q * log(P),如下:

P = [0.1,0.2,0.4,0.3]
Q = [0,0,1,0]
loss = -Q * np.log(P)

增加样本权重则为loss = - Q * log(P) *sample_weight

P = [0.1,0.2,0.4,0.3]
Q = [0,0,sample_weight,0]
loss_samle_weight = -Q * np.log(P)

在pytorch中示例程序

train_data = np.load(open('train_data.npy','rb'))
train_labels = []
for i in range(8):
  train_labels += [i] *100
train_labels = np.array(train_labels)
train_labels = to_categorical(train_labels).astype("float32")
sample_1 = [random.random() for i in range(len(train_data))]
for i in range(len(train_data)):
  floor = i / 100
  train_labels[i][floor] = sample_1[i]
train_data = torch.from_numpy(train_data) 
train_labels = torch.from_numpy(train_labels) 
dataset = dataf.TensorDataset(train_data,train_labels) 
trainloader = dataf.DataLoader(dataset, batch_size=batch_size, shuffle=True)

对应one-target的多分类交叉熵损失函数如下:

def my_loss(outputs, targets):
  
  output2 = outputs - torch.max(outputs, 1, True)[0]
 
 
  P = torch.exp(output2) / torch.sum(torch.exp(output2), 1,True) + 1e-10
 
 
  loss = -torch.mean(targets * torch.log(P))
 
 
  return loss

以上这篇在Pytorch中使用样本权重(sample_weight)的正确方法就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持三水点靠木。

Python 相关文章推荐
python的id()函数解密过程
Dec 25 Python
python复制文件代码实现
Dec 23 Python
简单说明Python中的装饰器的用法
Apr 24 Python
TensorFlow实现RNN循环神经网络
Feb 28 Python
Python编程flask使用页面模版的方法
Dec 28 Python
实例详解Python装饰器与闭包
Jul 29 Python
python GUI库图形界面开发之PyQt5树形结构控件QTreeWidget详细使用方法与实例
Mar 02 Python
Django+python服务器部署与环境部署教程详解
Mar 30 Python
详解使用python3.7配置开发钉钉群自定义机器人(2020年新版攻略)
Apr 01 Python
Python发送邮件封装实现过程详解
May 09 Python
Python+OpenCV图像处理——实现直线检测
Oct 23 Python
Python学习之time模块的基本使用
Jan 17 Python
获取Pytorch中间某一层权重或者特征的例子
Aug 17 #Python
pyenv与virtualenv安装实现python多版本多项目管理
Aug 17 #Python
pytorch 获取层权重,对特定层注入hook, 提取中间层输出的方法
Aug 17 #Python
关于PyTorch源码解读之torchvision.models
Aug 17 #Python
django项目用higcharts统计最近七天文章点击量
Aug 17 #Python
Django对models里的objects的使用详解
Aug 17 #Python
python3.6中@property装饰器的使用方法示例
Aug 17 #Python
You might like
php创建多级目录代码
2008/06/05 PHP
php-accelerator网站加速PHP缓冲的方法
2008/07/30 PHP
Windows下利用Gvim写PHP产生中文乱码问题解决方法
2011/04/20 PHP
PHP中__get()和__set()的用法实例详解
2013/06/04 PHP
PHP图像识别技术原理与实现
2016/10/27 PHP
js实现div弹出层的方法
2014/11/20 Javascript
JavaScript中利用各种循环进行遍历的方式总结
2015/11/10 Javascript
解析javascript瀑布流原理实现图片滚动加载
2016/03/10 Javascript
jQuery实现布局高宽自适应的简单实例
2016/05/28 Javascript
详解用node编写自己的cli工具
2017/05/23 Javascript
详解使用路由延迟加载 Angular 模块
2017/10/12 Javascript
ES6 中可以提升幸福度的小功能
2018/08/06 Javascript
vue后台管理之动态加载路由的方法
2018/08/13 Javascript
jquery实现动态改变css样式的方法分析
2019/05/27 jQuery
layui实现下拉复选功能的例子(包括数据的回显与上传)
2019/09/24 Javascript
微信小程序实现自定义动画弹框/提示框的方法实例
2020/11/06 Javascript
[02:53]DOTA2英雄基础教程 山岭巨人小小
2013/12/09 DOTA
Python中多线程thread与threading的实现方法
2014/08/18 Python
python使用arp欺骗伪造网关的方法
2015/04/24 Python
Django中对通过测试的用户进行限制访问的方法
2015/07/23 Python
约瑟夫问题的Python和C++求解方法
2015/08/20 Python
Python科学画图代码分享
2017/11/29 Python
浅谈Pycharm调用同级目录下的py脚本bug
2018/12/03 Python
python监测当前联网状态并连接的实例
2018/12/18 Python
Python socket实现的文件下载器功能示例
2019/11/15 Python
python实现简易版学生成绩管理系统
2020/06/22 Python
Python通过len函数返回对象长度
2020/10/22 Python
美国专注于健康商品的网站:eVitamins
2017/01/23 全球购物
运动鞋中的劳斯莱斯:索康尼(SAUCONY)
2017/08/09 全球购物
Lookfantastic葡萄牙官方网站:欧洲第一大化妆品零售商
2018/03/17 全球购物
Quiksilver荷兰官方网站:冲浪和滑雪板
2019/11/16 全球购物
智能室内花园:Click & Grow
2021/01/29 全球购物
医药工作岗位求职信分享
2013/12/31 职场文书
爱心捐助倡议书
2014/05/19 职场文书
Python中使用Lambda函数的5种用法
2021/04/01 Python
vue ant design 封装弹窗表单的使用
2022/06/01 Vue.js