在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写的一个文本编辑器
Jan 23 Python
Python中类的继承代码实例
Oct 28 Python
Python入门之modf()方法的使用
May 15 Python
Python和JavaScript间代码转换的4个工具
Feb 22 Python
Python3.6基于正则实现的计算器示例【无优化简单注释版】
Jun 14 Python
python爬虫简单的添加代理进行访问的实现代码
Apr 04 Python
Python创建或生成列表的操作方法
Jun 19 Python
python代码如何实现余弦相似性计算
Feb 09 Python
Python bytes string相互转换过程解析
Mar 05 Python
Django:使用filter的pk进行多值查询操作
Jul 15 Python
Python常用数字处理基本操作汇总
Sep 10 Python
Django-celery-beat动态添加周期性任务实现过程解析
Nov 26 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 冒泡排序算法的实现代码
2010/08/08 PHP
PHP循环输出指定目录下的所有文件和文件夹路径例子(简单实用)
2014/05/10 PHP
PHP的几个常用加密函数
2016/02/03 PHP
Dojo 学习要点
2010/09/03 Javascript
jQuery Pagination Ajax分页插件(分页切换时无刷新与延迟)中文翻译版
2013/01/11 Javascript
javascript中的window.location.search方法简介
2013/09/02 Javascript
获取select元素被选中的文本内容的js代码
2014/01/29 Javascript
动态创建script在IE中缓存js文件时导致编码的解决方法
2014/05/04 Javascript
深入理解JavaScript系列(42):设计模式之原型模式详解
2015/03/04 Javascript
JS组件Bootstrap导航条使用方法详解
2016/04/29 Javascript
Vue.JS入门教程之列表渲染
2016/12/01 Javascript
Angular 常用指令实例总结整理
2016/12/13 Javascript
bootstrap table分页模板和获取表中的ID方法
2017/01/10 Javascript
layui前端框架之table表数据的刷新方法
2018/08/17 Javascript
H5+C3+JS实现双人对战五子棋游戏(UI篇)
2020/05/28 Javascript
微信小程序request请求封装,验签代码实例
2019/12/04 Javascript
js实现表格数据搜索
2020/08/09 Javascript
Python的装饰器用法学习笔记
2016/06/24 Python
Python实现使用request模块下载图片demo示例
2019/05/24 Python
pytorch 中的重要模块化接口nn.Module的使用
2020/04/02 Python
Django crontab定时任务模块操作方法解析
2020/09/10 Python
html5中嵌入视频自动播放的问题解决
2020/05/25 HTML / CSS
Office DEPOT法国官网:欧迪办公用品采购
2018/01/03 全球购物
夏威夷灵感服装及配饰:Reyn Spooner
2018/09/18 全球购物
购买原创艺术品:Zatista
2019/11/09 全球购物
车间调度岗位职责
2013/11/30 职场文书
工业学校毕业生自荐书
2014/01/03 职场文书
幼儿园教师获奖感言
2014/03/11 职场文书
公开服务承诺制度
2014/03/26 职场文书
信用卡工作证明模板
2014/09/14 职场文书
医德医风个人总结
2015/02/28 职场文书
安全教育培训制度
2015/08/06 职场文书
幼儿教师远程研修感悟
2015/11/18 职场文书
公文写作:教你写“建议书”
2019/05/07 职场文书
看古人们是如何赞美老师的?
2019/07/08 职场文书
留学文书中的个人陈述,应该注意哪些问题?
2019/08/23 职场文书