keras中sample_weight的使用

百度了好久,没有找到与sample_weight相关的博客,于是自己摸索一下。
sample_weight是keras中的fit的参数,中文文档介绍如下:
在这里插入图片描述
简单点的解释如下:参考https://blog.csdn.net/weixin_40755306/article/details/82290033#commentBox

在这里插入图片描述
sample_weight的作用就是为数据集中的数据分配不同的权重。

我的例子是要将数据集的数据分为三类,用0,1,2代表这三类,我这里想为0分配权重0.3,为1分配权重1,为2分配权重2.。
我的数据是存储在csv文件中的,我提取出标签列表,标签列表的内容是0,1,2的集合,列表名称为y_train。我用下面代码生成一个权重的列表:

sample_weights=[]
for sw in range(len(y_train)):
    if y_train[sw]==0:
            sample_weights.append(0.3)
    if y_train[sw]==1:
            sample_weights.append(1)
    if y_train[sw]==2:
            sample_weights.append(2)
sample_weights=np.array(sample_weights)

当标签为0时, sample_weights添加0.3,当标签为1时, sample_weights添加1,当标签为2时, sample_weights添加2。
这里记得不要漏了最后一行,将列表转化为numpy数组。因为sample_weight只能是numpy数组。
创建好数组之后,下一步是要在compile中添加一个参数,先看看是添加哪个参数:
在这里插入图片描述
这里的sample_weight_mode分为两种形式,如果你的权重形式是像我这样的,就是1D,那sample_weight_mode就设置为None。2D的形式还没试过,但如果用2D形式,那sample_weight_mode就要设置为sample_weight_mode=‘temporal’ 。

compile设置完就要设置fit了,我的模型有两个输出,但是我只想设置分类输出,我这里的分类输出层命名为’classifier’。那就在fit中添加一个参数:

sample_weight={'classifier' : sample_weights}

sample_weights是我们上面定义的数组。

这样便可简单实现对数据的加权。

  • 10
    点赞
  • 47
    收藏
    觉得还不错? 一键收藏
  • 11
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 11
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值