java按照阀值拆分数据,多标签分类:如何学习阈值?

我有一个很深的CNN,适用于多类分类 . 我想“升级”挑战,并根据多标签分类问题进行培训 .

为此,我用sigmoid替换了我的softmax并尝试训练我的网络以最小化:

tf.reduce_mean(tf.nn.sigmoid_cross_entropy_with_logits(labels=y_, logits=y_pred)

但我最终得到了奇怪的预测:

Prediction for Im1 : [ 0.59275776 0.08751075 0.37567005 0.1636796 0.42361438 0.08701646

0.38991812 0.54468459 0.34593087 0.82790571]

Prediction for Im1 : [ 0.52609032 0.07885984 0.45780018 0.04995904 0.32828355 0.07349177

0.35400775 0.36479294 0.30002621 0.84438241]

Prediction for Im1 : [ 0.58714485 0.03258472 0.3349618 0.03199361 0.54665488 0.02271551

0.43719986 0.54638696 0.20344526 0.88144571]

所以我想我尝试让我的网络学习每个类的阈值,以确定样本是否属于te类 .

所以我把它添加到我的代码中:

initial = tf.truncated_normal([numberOfClasses], stddev=0.1)

W_thresh = tf.Variable(initial)

y_predict_thresh = int(y_predict > W_thresh)

但是我有一个错误:

TypeError: int() argument must be a string or a number, not 'Tensor'.

任何人都有任何想法帮助我前进(如何避免这个错误?,我的数据集是否真的不 balancer 的事实导致这种“常量”预测?对多标签分类的其他建议?,...)?

谢谢

编辑:我刚刚意识到做阈值处理对于反向传播可能不是很酷:/

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值