在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通过线程实现定时器timer的方法
Mar 16 Python
Python黑魔法@property装饰器的使用技巧解析
Jun 16 Python
python 网络编程常用代码段
Aug 28 Python
Python3计算三角形的面积代码
Dec 18 Python
python生成tensorflow输入输出的图像格式的方法
Feb 12 Python
使用Flask集成bootstrap的方法
Jul 24 Python
Pandas读取MySQL数据到DataFrame的方法
Jul 25 Python
Python实现监控键盘鼠标操作示例【基于pyHook与pythoncom模块】
Sep 04 Python
python通过http下载文件的方法详解
Jul 26 Python
Python3开发实例之非关系型图数据库Neo4j安装方法及Python3连接操作Neo4j方法实例
Mar 18 Python
Python中的__init__作用是什么
Jun 09 Python
python获取系统内存占用信息的实例方法
Jul 17 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实现天干地支计算器示例
2014/03/14 PHP
PHP实现GIF图片验证码
2015/11/04 PHP
Thinkphp批量更新数据的方法汇总
2016/06/29 PHP
PHP实现单例模式建立数据库连接的方法分析
2020/02/11 PHP
javascript动态添加表格数据行(ASP后台数据库保存例子)
2010/05/08 Javascript
Javascript的一种模块模式
2010/09/08 Javascript
js动画(animate)简单引擎代码示例
2012/12/04 Javascript
关于全局变量和局部变量的那些事
2013/01/11 Javascript
javascript游戏开发之《三国志曹操传》零部件开发(四)用地图块拼成大地图
2013/01/23 Javascript
Javascript中匿名函数的多种调用方式总结
2013/12/06 Javascript
js实现简单秒表走动的时钟特效
2020/03/25 Javascript
4种JavaScript实现简单tab选项卡切换的方法
2016/01/06 Javascript
Node.js刷新session过期时间的实现方法推荐
2016/05/18 Javascript
jQuery操作json常用方法示例
2017/01/04 Javascript
jQuery点击头像上传并预览图片
2017/02/23 Javascript
TypeScript入门-接口
2017/03/30 Javascript
Node.js控制台彩色输出的方法与原理实例详解
2019/12/01 Javascript
使用Taro实现小程序商城的购物车功能模块的实例代码
2020/06/05 Javascript
vue 实现一个简单的全局调用弹窗案例
2020/09/10 Javascript
Python3中多线程编程的队列运作示例
2015/04/16 Python
在Linux系统上部署Apache+Python+Django+MySQL环境
2015/12/24 Python
python3实现读取chrome浏览器cookie
2016/06/19 Python
如何通过python的fabric包完成代码上传部署
2019/07/29 Python
Python中字典与恒等运算符的用法分析
2019/08/22 Python
python中class的定义及使用教程
2019/09/18 Python
Python二维数组实现求出3*3矩阵对角线元素的和示例
2019/11/29 Python
TensorFlow实现自定义Op方式
2020/02/04 Python
Python安装第三方库攻略(pip和Anaconda)
2020/10/15 Python
DJI大疆德国官方商城:大疆无人机
2018/09/01 全球购物
学生发电厂实习自我鉴定
2013/09/22 职场文书
宿舍卫生检讨书
2014/01/16 职场文书
初中成绩单评语
2014/12/29 职场文书
介绍信范文
2015/01/31 职场文书
钱学森观后感
2015/06/04 职场文书
2016继续教育研修日志
2015/11/13 职场文书
element多个表单校验的实现
2021/05/27 Javascript