P[i][label[i]]的含义

本篇博客针对Less is More: Adaptive Curriculum Learning for Thyroid Nodule Diagnosis论文进行分享。原文

what a brilliant idea
通过debug我们可以知道,label的值只有0和1。也就是说,不论i的值取多少,label[i]的值也都只有0和1两种。
所以,假设i的值等于10,P[i][label[i]]会表示为P[10][0]P[10][1]。再根据每个batch中label的值,比如:label=[0,1,1,1,0,0,0,0,0,0,0,0,0,1,1,0]
这片论文的核心代码分享如下:

 # -------------------------------------Get threshold(论文的核心精华部分)-------------------------------------------
                for i in range(feats.shape[0]):
                    # 预测可能性P,并且P的形状为 B(atchSize) × 2
                    P = torch.nn.Softmax(dim=1)(feats)
                    # 当label和预测值的最大值不一致时。
                    Y_pre=torch.argmax(P[i]).item()
                    if label[i].item() != Y_pre:
                        # print(label[i].item(),P[i].item())
                        # 把真实值放入inconsistent_score_list的第一个位置上(First In First Out)what a brilliant idea. 因为label的取值只有0和1两种,所以,label[i]的结果只有0和1。
                        value=P[i][label[i]]
                        inconsistent_score_list.append(value.item())
                        # 如果inconsistent_score_list的队列长度 > HQ 的长度
                        if len(inconsistent_score_list) > args.HQ_len:
                            # 直接丢弃这个元素
                            # print("我从未执行")
                            inconsistent_score_list.pop(0)

                    if args.coff_std < 0: # coff_std=-1
                        certainty_queue.append(torch.max(P[i]).item())  #不论前面的是True还是False,certainty_queue都会存放每一行的最大值
                        if len(certainty_queue) > args.CQ_len * args.batch_size:
                            certainty_queue.pop(0)
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值