在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实现115网盘自动下载的方法
Sep 30 Python
python输出当前目录下index.html文件路径的方法
Apr 28 Python
Python3实现的简单验证码识别功能示例
May 02 Python
Python学习笔记之图片人脸检测识别实例教程
Mar 06 Python
python障碍式期权定价公式
Jul 19 Python
python使用paramiko模块通过ssh2协议对交换机进行配置的方法
Jul 25 Python
python中如何实现将数据分成训练集与测试集的方法
Sep 13 Python
python getopt模块使用实例解析
Dec 18 Python
PyTorch中的Variable变量详解
Jan 07 Python
Python图像处理库PIL的ImageEnhance模块使用介绍
Feb 26 Python
pycharm开发一个简单界面和通用mvc模板(操作方法图解)
May 27 Python
解决python便携版无法直接运行py文件的问题
Sep 01 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中Redis的应用--消息传递
2017/03/28 PHP
用PHP去掉文件头的Unicode签名(BOM)方法
2017/06/22 PHP
php写入txt乱码的解决方法
2019/09/17 PHP
Javascript Select操作大集合
2009/05/26 Javascript
DOM节点删除函数removeChild()用法实例
2015/01/12 Javascript
javascript实现鼠标移到Image上方时显示文字效果的方法
2015/08/07 Javascript
js实现n秒倒计时后才可以点击的效果
2015/12/20 Javascript
ionic隐藏tabs的方法
2016/08/29 Javascript
老生常谈javascript的类型转换
2016/10/12 Javascript
浅谈AngularJs指令之scope属性详解
2016/10/24 Javascript
JS前端笔试题分析
2016/12/19 Javascript
javascript十六进制数字和ASCII字符之间的转换方法
2016/12/27 Javascript
jQuery+HTML5实现弹出创意搜索框层
2016/12/29 Javascript
nodejs根据ip数组在百度地图中进行定位
2017/03/06 NodeJs
使用Xcache缓存器加速PHP网站的配置方法
2017/04/22 Javascript
vue component组件使用方法详解
2017/07/14 Javascript
JavaScript实现短信倒计时60s
2017/10/09 Javascript
基于nodejs实现微信支付功能
2017/12/20 NodeJs
仿淘宝JSsearch搜索下拉深度用法
2018/01/15 Javascript
iview table render集成switch开关的实例
2018/03/14 Javascript
详解node Async/Await 更好的异步编程解决方案
2018/05/10 Javascript
react native基于FlatList下拉刷新上拉加载实现代码示例
2018/09/30 Javascript
javascript实现滚动条效果
2020/03/24 Javascript
基于JavaScript实现简单扫雷游戏
2021/01/02 Javascript
python登陆asp网站页面的实现代码
2015/01/14 Python
python数据结构之链表详解
2017/09/12 Python
在python中修改.properties文件的操作
2020/04/08 Python
对Matlab中共轭、转置和共轭装置的区别说明
2020/05/11 Python
Python 实现PS滤镜中的径向模糊特效
2020/12/03 Python
HTML5使用DOM进行自定义控制示例代码
2013/06/08 HTML / CSS
设计师珠宝:Ylang 23
2018/05/11 全球购物
Lancer Skincare官方网站:抗衰老皮肤护理
2020/11/20 全球购物
小学教师的个人自我鉴定
2013/10/24 职场文书
后进生评语大全
2015/01/04 职场文书
2016十一国庆节感言
2015/12/09 职场文书
浅析CSS在DevTools 中架构演变
2021/10/05 HTML / CSS