在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制作数据导入导出工具
Jul 31 Python
python中map()与zip()操作方法
Feb 27 Python
python 3利用BeautifulSoup抓取div标签的方法示例
May 28 Python
Python3 读、写Excel文件的操作方法
Oct 20 Python
Python 数值区间处理_对interval 库的快速入门详解
Nov 16 Python
PyQt5创建一个新窗口的实例
Jun 20 Python
python networkx 根据图的权重画图实现
Jul 10 Python
使用OpenCV实现仿射变换—平移功能
Aug 29 Python
在PyCharm中实现添加快捷模块
Feb 12 Python
python实现xml转json文件的示例代码
Dec 30 Python
基于注解实现 SpringBoot 接口防刷的方法
Mar 02 Python
Python按顺序遍历并读取文件夹中文件
Apr 29 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
smarty高级特性之对象的使用方法
2015/12/25 PHP
Javascript实现仿WebQQ界面的“浮云”兼容 IE7以上版本及FF
2011/04/27 Javascript
JS判断页面加载状态以及添加遮罩和缓冲动画的代码
2012/10/11 Javascript
window.event.keyCode兼容IE和Firefox实现js代码
2013/05/30 Javascript
jquery实现页面关键词高亮显示的方法
2015/03/12 Javascript
用Node.js通过sitemap.xml批量抓取美女图片
2015/05/28 Javascript
AngularJS+Node.js实现在线聊天室
2015/08/28 Javascript
JS实现网页Div层Clone拖拽效果
2015/09/26 Javascript
JavaScript中创建对象的模式汇总
2016/04/19 Javascript
js微信分享API
2020/10/11 Javascript
微信小程序 页面跳转及数据传递详解
2017/03/14 Javascript
jQuery实现jQuery-form.js实现异步上传文件
2017/04/28 jQuery
vue-router 中router-view不能渲染的解决方法
2017/05/23 Javascript
浅谈ElementUI中switch回调函数change的参数问题
2018/08/24 Javascript
基于jquery实现的tab选项卡功能示例【附源码下载】
2019/06/10 jQuery
在antd中setFieldsValue和defaultVal的用法
2020/10/29 Javascript
[09:40]DAC2018 4.5 SOLO赛 MidOne vs Miracle
2018/04/06 DOTA
收集的几个Python小技巧分享
2014/11/22 Python
python使用Image处理图片常用技巧分析
2015/06/01 Python
Python正则表达式完全指南
2017/05/25 Python
pandas计数 value_counts()的使用
2019/06/24 Python
在PyTorch中Tensor的查找和筛选例子
2019/08/18 Python
Python从文件中读取指定的行以及在文件指定位置写入
2019/09/06 Python
python绘制随机网络图形示例
2019/11/21 Python
TensorFLow 变量命名空间实例
2020/02/11 Python
Python基于yaml文件配置logging日志过程解析
2020/06/23 Python
python 实现aes256加密
2020/11/27 Python
python math模块的基本使用教程
2021/01/16 Python
JD Sports澳洲官网:英国领先的运动鞋和运动时尚零售商
2020/02/15 全球购物
国培远程培训感言
2014/03/08 职场文书
公务员保密承诺书
2014/03/27 职场文书
红色故事演讲稿
2014/05/22 职场文书
班级活动总结格式
2014/08/30 职场文书
领导欢迎词范文
2015/01/26 职场文书
Idea连接MySQL数据库出现中文乱码的问题
2021/04/14 MySQL
java实现对Hadoop的操作
2021/07/01 Java/Android