在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的批量远程管理和部署工具Fabric用法实例
Jan 23 Python
python smtplib模块发送SSL/TLS安全邮件实例
Apr 08 Python
在Python的web框架中配置app的教程
Apr 30 Python
编写Python脚本来获取mp3文件tag信息的教程
May 04 Python
多个应用共存的Django配置方法
May 30 Python
pycharm运行和调试不显示结果的解决方法
Nov 30 Python
python实现微信每日一句自动发送给喜欢的人
Apr 29 Python
在python里面运用多继承方法详解
Jul 01 Python
pyinstaller打包opencv和numpy程序运行错误解决
Aug 16 Python
wxPython绘图模块wxPyPlot实现数据可视化
Nov 19 Python
python add_argument()用法解析
Jan 29 Python
最简单的matplotlib安装教程(小白)
Jul 28 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基于GD库的缩略图生成代码(支持jpg,gif,png格式)
2014/06/19 PHP
php输入流php://input使用浅析
2014/09/02 PHP
php中字符查找函数strpos、strrchr与strpbrk用法
2014/11/18 PHP
php批量添加数据与批量更新数据的实现方法
2014/12/16 PHP
php实现给一张图片加上水印效果
2016/01/02 PHP
PHP-X系列教程之内置函数的使用示例
2017/10/16 PHP
关于IE7 IE8弹出窗口顶上
2008/12/22 Javascript
Jquery替换已存在于element上的event的方法
2010/03/09 Javascript
jQuery中(function(){})()执行顺序的理解
2013/03/05 Javascript
JS.elementGetStyle(element, style)应用示例
2013/09/24 Javascript
为开发者准备的10款最好的jQuery日历插件
2014/02/04 Javascript
jquery的ajax跨域请求原理和示例
2014/05/08 Javascript
浅谈Javascript中substr和substring的区别
2015/09/30 Javascript
js实现密码强度检测【附示例】
2016/03/30 Javascript
JavaScript中子对象访问父对象的方式详解
2016/09/01 Javascript
javascript输出AscII码扩展集中的字符方法
2016/12/26 Javascript
Vue自定义指令使用方法详解
2017/08/21 Javascript
JSONP原理及应用实例详解
2018/09/13 Javascript
vue路由结构可设一层方便动态添加路由操作
2020/08/31 Javascript
35个Python编程小技巧
2014/04/01 Python
python输出指定月份日历的方法
2015/04/23 Python
python实现五子棋游戏(pygame版)
2020/01/19 Python
Python限制内存和CPU使用量的方法(Unix系统适用)
2020/08/04 Python
Python从MySQL数据库中面抽取试题,生成试卷
2021/01/14 Python
Shopee印度尼西亚:东南亚与台湾市场最大电商平台
2018/06/17 全球购物
军训心得体会
2013/12/31 职场文书
就业自我评价
2014/02/04 职场文书
餐饮业员工工作决心书
2014/03/11 职场文书
学雷锋先进个人事迹
2014/05/26 职场文书
高一课前三分钟演讲稿
2014/09/13 职场文书
2014年环保工作总结
2014/11/26 职场文书
2015年管理人员工作总结
2015/05/13 职场文书
情人节单身感言
2015/08/03 职场文书
2016年“12.3”国际残疾人日活动总结
2016/04/01 职场文书
2019员工保密协议书(3篇)
2019/09/23 职场文书
Python实现排序方法常见的四种
2021/07/15 Python