在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使用urllib2获取网络资源实例讲解
Dec 02 Python
python实现简单购物商城
May 21 Python
Python端口扫描简单程序
Nov 10 Python
利用Python爬取微博数据生成词云图片实例代码
Aug 31 Python
Win10里python3创建虚拟环境的步骤
Jan 31 Python
开启Django博客的RSS功能的实现方法
Feb 17 Python
python matplotlib库的基本使用
Sep 23 Python
Python3中FuzzyWuzzy库实例用法
Nov 18 Python
Python ellipsis 的用法详解
Nov 20 Python
Python绘制分类图的方法
Apr 20 Python
Python爬虫进阶之Beautiful Soup库详解
Apr 29 Python
详解Flask开发技巧之异常处理
Jun 15 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 日,周,月点击排行统计
2012/01/11 PHP
在PHP中使用X-SendFile头让文件下载更快
2014/06/01 PHP
Laravel框架中集成MongoDB和使用详解
2019/10/17 PHP
类似框架的js代码
2006/11/09 Javascript
jquery ajax提交表单数据的两种方式
2009/11/24 Javascript
Javascript JSQL,SQL无处不在,
2010/05/05 Javascript
js运动框架_包括图片的淡入淡出效果
2013/05/11 Javascript
angularjs的一些优化小技巧
2014/12/06 Javascript
JavaScript+canvas实现七色板效果实例
2016/02/18 Javascript
javascript拖拽应用实例(二)
2016/03/25 Javascript
移动端H5开发 Turn.js实现很棒的翻书效果
2016/06/20 Javascript
Three.js学习之几何形状
2016/08/01 Javascript
jQuery的extend方法【三种】
2016/12/14 Javascript
100多个基础常用JS函数和语法集合大全
2017/02/16 Javascript
TypeScript入门-接口
2017/03/30 Javascript
vue之nextTick全面解析
2017/05/17 Javascript
Vuex利用state保存新闻数据实例
2017/06/28 Javascript
利用原生JavaScript实现造日历轮子实例代码
2019/05/08 Javascript
js实现简单的点名器随机色实例代码
2020/09/20 Javascript
vue实现移动端返回顶部
2020/10/12 Javascript
[01:36:17]DOTA2-DPC中国联赛 正赛 Ehome vs iG BO3 第一场 1月31日
2021/03/11 DOTA
python根据list重命名文件夹里的所有文件实例
2018/10/25 Python
python dataframe向下向上填充,fillna和ffill的方法
2018/11/28 Python
django使用LDAP验证的方法示例
2018/12/10 Python
python向字符串中添加元素的实例方法
2019/06/28 Python
英国泰坦旅游网站:全球陪同游览,邮轮和铁路旅行
2016/11/29 全球购物
Nisbets法国:英国最大的厨房和餐饮设备供应商
2019/03/18 全球购物
大学生标准推荐信范文
2013/11/25 职场文书
国际商务系学生个人的自我评价
2013/11/26 职场文书
青年文明号汇报材料
2014/12/23 职场文书
自我推荐信格式模板
2015/03/24 职场文书
2015年幼儿园学期工作总结
2015/05/22 职场文书
演讲比赛主持词
2015/06/29 职场文书
创业计划书之甜品店
2019/09/18 职场文书
JS 基本概念详细介绍
2021/10/16 Javascript
详解OpenCV曝光融合
2022/04/29 Python