在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正则获取、过滤或者替换HTML标签的方法
Jan 28 Python
python执行使用shell命令方法分享
Nov 08 Python
Python2.X/Python3.X中urllib库区别讲解
Dec 19 Python
python实现txt文件格式转换为arff格式
May 31 Python
解决pycharm回车之后不能换行或不能缩进的问题
Jan 16 Python
Python实现读取txt文件中的数据并绘制出图形操作示例
Feb 26 Python
对python while循环和双重循环的实例详解
Aug 23 Python
详解centos7+django+python3+mysql+阿里云部署项目全流程
Nov 15 Python
opencv python在视屏上截图功能的实现
Mar 05 Python
python datetime处理时间小结
Apr 16 Python
python文件操作seek()偏移量,读取指正到指定位置操作
Jul 05 Python
Python extract及contains方法代码实例
Sep 11 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报表之jpgraph柱状图实例代码
2011/08/22 PHP
PHP如何将log信息写入服务器中的log文件
2015/07/29 PHP
利用switch语句进行多选一判断的实例代码
2016/11/14 PHP
CentOS7.0下安装PHP5.6.30服务的教程详解
2018/09/29 PHP
checkbox 多选框 联动实现代码
2008/10/22 Javascript
JavaScript高级程序设计 错误处理与调试学习笔记
2011/09/10 Javascript
Three.js源码阅读笔记(光照部分)
2012/12/27 Javascript
JavaScript中字符串分割函数split用法实例
2015/04/07 Javascript
聊聊Vue.js的template编译的问题
2017/10/09 Javascript
JavaScript实现删除数组重复元素的5种常用高效算法总结
2018/01/18 Javascript
微信小程序实现YDUI的ScrollTab组件
2018/02/02 Javascript
详解Vue.js使用Swiper.js在iOS
2018/09/10 Javascript
vue项目打包为APP,静态资源正常显示,但API请求不到数据的操作
2020/09/12 Javascript
在vue项目中封装echarts的步骤
2020/12/25 Vue.js
Python的Django框架中的Context使用
2015/07/15 Python
django 实现电子支付功能的示例代码
2018/07/25 Python
详解pytorch 0.4.0迁移指南
2019/06/16 Python
python程序运行进程、使用时间、剩余时间显示功能的实现代码
2019/07/11 Python
详解mac python+selenium+Chrome 简单案例
2019/11/08 Python
如何给Python代码进行加密
2020/01/10 Python
简单了解python filter、map、reduce的区别
2020/01/14 Python
Python 将 QQ 好友头像生成祝福语的实现代码
2020/05/03 Python
TensorFlow中如何确定张量的形状实例
2020/06/23 Python
python使用bs4爬取boss直聘静态页面
2020/10/10 Python
Html5 Canvas实现图片标记、缩放、移动和保存历史状态功能 (附转换公式)
2020/03/18 HTML / CSS
资料员的岗位职责
2013/11/20 职场文书
博士学位自我鉴定范文
2013/12/26 职场文书
旅游管理毕业生自荐书
2014/02/02 职场文书
小学三八妇女节活动方案
2014/03/16 职场文书
二年级评语大全
2014/04/23 职场文书
个人考核材料
2014/05/15 职场文书
2015年党风建设工作总结
2015/04/29 职场文书
一年级语文教学随笔
2015/08/14 职场文书
vue代码分块和懒加载非必要资源文件
2022/04/11 Vue.js
Elasticsearch 批量操作
2022/04/19 Python
postgresql中如何执行sql文件
2023/05/08 PostgreSQL