在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实现的扫雷游戏实例代码
Aug 01 Python
python PIL模块与随机生成中文验证码
Feb 27 Python
Python自定义类的数组排序实现代码
Aug 28 Python
简单实现python画圆功能
Jan 25 Python
对python添加模块路径的三种方法总结
Oct 16 Python
Python命名空间的本质和加载顺序
Dec 17 Python
Python实现获取汉字偏旁部首的方法示例【测试可用】
Dec 18 Python
python基础梳理(一)(推荐)
Apr 06 Python
python用什么编辑器进行项目开发
Jun 17 Python
python递归函数用法详解
Oct 26 Python
Python 如何解决稀疏矩阵运算
May 26 Python
Python中else的三种使用场景
Jun 16 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之第九天
2006/10/09 PHP
PHP+DBM的同学录程序(2)
2006/10/09 PHP
PHP句法规则详解 入门学习
2011/11/09 PHP
PHP开发中AJAX技术的简单应用
2015/12/11 PHP
js对象数组按属性快速排序
2011/01/31 Javascript
用jquery.sortElements实现table排序
2014/05/04 Javascript
纯HTML5制作围住神经猫游戏-附源码下载
2015/08/23 Javascript
JS字符串的切分用法实例
2016/02/22 Javascript
使用BootStrap和Metroui设计的metro风格微网站或手机app界面
2016/10/21 Javascript
解析JavaScript数组方法reduce
2016/12/12 Javascript
简单实现js无缝滚动效果
2017/02/05 Javascript
jQuery实现倒计时功能 jQuery实现计时器功能
2017/09/19 jQuery
对mac下nodejs 更新到最新版本的最新方法(推荐)
2018/05/17 NodeJs
详解操作虚拟dom模拟react视图渲染
2018/07/25 Javascript
vue实现数据控制视图的原理解析
2020/01/07 Javascript
JS实现滑动拼图验证功能完整示例
2020/03/29 Javascript
[01:15:18]2014 DOTA2国际邀请赛中国区预选赛 LGD VS Speed Gaming.cn
2014/05/22 DOTA
在python中的socket模块使用代理实例
2014/05/29 Python
Python的Flask框架中实现登录用户的个人资料和头像的教程
2015/04/20 Python
python3基于TCP实现CS架构文件传输
2018/07/28 Python
python清空命令行方式
2020/01/13 Python
python定义类self用法实例解析
2020/01/22 Python
python读取csv文件指定行的2种方法详解
2020/02/13 Python
基于python3生成标签云代码解析
2020/02/18 Python
如何用python 操作zookeeper
2020/12/28 Python
vue.js刷新当前页面的实例讲解
2020/12/29 Python
wordpress添加Html5的表单验证required方法小结
2020/08/18 HTML / CSS
约瑟夫·特纳男装:Joseph Turner
2017/10/10 全球购物
英国DIY汽车维修配件网站:DIY Car Service Parts
2019/08/30 全球购物
简单的JAVA编程面试题
2013/03/19 面试题
交通事故检查书范文
2014/01/30 职场文书
揠苗助长教学反思
2014/02/04 职场文书
李敖北大演讲稿
2014/05/24 职场文书
领导干部群众路线剖析材料
2014/10/09 职场文书
酒店总经理岗位职责
2015/04/01 职场文书
React + Threejs + Swiper 实现全景图效果的完整代码
2021/06/28 Javascript