[Bug集合]Rank mismatch: Rank of labels (received 2) should equal rank of logits minus 1 (received 2)

在使用tf.nn.sparse_softmax_cross_entropy_with_logits(logits, labels)语句时产生。
原因是logits和labels在使用时有labels应该少一维的限制。
比如一个tensorflow的分类问题,
logits应该是batch×classes的一个矩阵,classes为类别数量
labels应该是长batch的一个数组
当logits判断图片为某一类时,对应classes的位置为1


例子,比如猫狗大战吧。
当你一批次训练10张图片时,batch为10,猫狗总共两种分类。
logits就应该是类似这样的一个10×2的矩阵:
[
0 1
1 0
0 1
0 1
0 1
1 0
1 0
1 0
1 0
0 1
]
10是10张图片, 每行第一个位置如果为1,那么这一张图片是狗,每行第二个位置如果为1,那么这一张图片是猫。
而此时的label应该是一个这样的一维矩阵:
[2 1 2 2 2 1 1 1 1 2]
logits和label满足这种形式时使用tf.nn.sparse_softmax_cross_entropy_with_logits(logits, labels)语句是正确的。
我一开始把两个都弄成二维格式就出现了如上错误。如果对你有用点个赞呗。

评论 9
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值