在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简单猜数游戏实例
Jul 09 Python
使用python爬取B站千万级数据
Jun 08 Python
pandas数据筛选和csv操作的实现方法
Jul 02 Python
Python 迭代,for...in遍历,迭代原理与应用示例
Oct 12 Python
tensorflow对图像进行拼接的例子
Feb 05 Python
keras小技巧——获取某一个网络层的输出方式
May 23 Python
python能自学吗
Jun 18 Python
python推导式的使用方法实例
Feb 28 Python
如何利用Python实现一个论文降重工具
Jul 09 Python
C3 线性化算法与 MRO之Python中的多继承
Oct 05 Python
Python安装使用Scrapy框架
Apr 12 Python
Python数据可视化之Seaborn的安装及使用
Apr 19 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
一个可以删除字符串中HTML标记的PHP函数
2006/10/09 PHP
PHP学习笔记 (1) 环境配置与代码调试
2011/06/19 PHP
使用php伪造referer的方法 利用referer防止图片盗链
2014/01/20 PHP
php中将一个对象保存到Session中的方法
2015/03/13 PHP
PHP的Laravel框架结合MySQL与Redis数据库的使用部署
2016/03/21 PHP
php readfile下载大文件失败的解决方法
2017/05/22 PHP
Laravel 实现关系模型取出需要的字段
2019/10/10 PHP
laravel 去掉index.php伪静态的操作方法
2019/10/12 PHP
js压缩工具 yuicompressor 使用教程
2010/03/31 Javascript
ext jquery 简单比较
2010/04/07 Javascript
推荐11款jQuery开发的复选框和单选框美化插件
2011/08/02 Javascript
angular+bootstrap的双向数据绑定实例
2017/03/03 Javascript
微信小程序手势操作之单触摸点与多触摸点
2017/03/10 Javascript
浅谈vue单一组件下动态修改数据时的全部重渲染
2018/03/01 Javascript
使用elementUI实现将图片上传到本地的示例
2018/09/04 Javascript
ES6中的class是如何实现的(附Babel编译的ES5代码详解)
2019/05/17 Javascript
详解vue 在移动端体验上的优化解决方案
2019/05/20 Javascript
layui点击数据表格添加或删除一行的例子
2019/09/12 Javascript
Python中的高级函数map/reduce使用实例
2015/04/13 Python
Python字符串切片操作知识详解
2016/03/28 Python
Pycharm设置界面全黑的方法
2018/05/23 Python
详解python3中用HTMLTestRunner.py报ImportError: No module named 'StringIO'如何解决
2019/08/27 Python
Python QT组件库qtwidgets的使用
2020/11/02 Python
详解Pymongo常用查询方法总结
2021/01/29 Python
俄罗斯汽车零件和配件在线商店:CarvilleShop
2019/11/29 全球购物
英国女性化妆品收纳和家具网站:Beautify
2019/12/07 全球购物
高校自主招生自荐信
2013/12/09 职场文书
《孔繁森》教学反思
2014/04/17 职场文书
大学生工作求职信
2014/06/23 职场文书
音乐幼师求职信
2014/07/09 职场文书
出纳试用期自我鉴定范文
2014/09/16 职场文书
教师四风自我剖析材料
2014/09/30 职场文书
给医院的感谢信
2015/01/21 职场文书
导游带团欢迎词
2015/09/30 职场文书
Vue中Object.assign清空数据报错的解决方案
2022/03/03 Vue.js
Golang 并发编程 SingleFlight模式
2022/04/26 Golang