python中sample怎么用_python – 在Keras中使用sample_weight进行序列标记

我正在研究不平衡类的顺序标签问题,我想使用sample_weight来解决不平衡问题.基本上如果我训练模型大约10个时代,我会得到很好的结果.如果我训练更多的时代,val_loss不断下降,但我的结果更糟.我猜测模型只是检测到更多的优势类而不利于较小的类.

该模型有两个输入,用于字嵌入和字符嵌入,输入是从0到6的7个可能类之一.

使用填充,用于字嵌入的输入层的形状是(3000,150),并且用于字嵌入的输入层是(3000,150,15).我使用0.3分割来测试和训练数据,这意味着用于字嵌入的X_train是(2000,150)和(2000,150,15)用于字符嵌入. y包含每个单词的正确类,以7维的单热矢量编码,因此其形状为(3000,150,7). y同样分为训练和测试集.然后将每个输入馈入双向LSTM.

输出是一个矩阵,其中为2000个训练样本的每个单词分配了7个类别之一,因此大小为(2000,150,7).

首先,我只是尝试将sample_weight定义为长度为7的np.array,其中包含每个类的权重:

count = [list(array).index(1) for arrays in y for array in arrays]

count = dict(Counter(count))

count[0] = 0

total = sum([count[key] for key in count])

count = {k: count[key] / total for key in count}

category_weights = np.zeros(7)

for f in count:

category_weights[f] = count[f]

但是我得到以下错误ValueError:找到一个带有shape(7,)的sample_weight数组,用于输入形状(200

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值