繁体   English   中英

为验证测试创建进度条 Python

[英]creating a progress bar for a validation test Python

以下代码用于查找对 Cifar-10 数据库进行重要测试的 p 值。 因为我们需要最少 1000 个排列,所以这是一个非常缓慢的过程,我想包含一个进度条来显示每个排列的时间。 我正在考虑使用 tqdm 库和睡眠 function,但我被困在从这里到 go 的位置。 任何帮助将不胜感激!

'''

def validate_significance(val_loader,model,标准,参数):

model.eval()



vec_acc1 = []
vec_acc1_chance = []
vec_acc5 = []
vec_acc5_chance = []

for ss in range(0, args.num_permutations):


    val_loader = get_rand_sample_loader(val_loader.dataset, args)

    acc1_over_one_permutaion = 0
    acc1_chance_over_one_permutation = 0
    acc5_over_one_permutaion = 0
    acc5_chance_over_one_permutation = 0
    cnt = 0
    with torch.no_grad():
        for i, (images, target) in enumerate(val_loader):

            if args.gpu is not None:
                images = images.cuda(args.gpu, non_blocking=True)
            if torch.cuda.is_available():
                target = target.cuda(args.gpu, non_blocking=True)

            # compute output
            output = model(images)

            # measure accuracy on true labels
            acc1, acc5 = accuracy(output, target, topk=(1, 5))
            acc1_over_one_permutaion += acc1.item()
            acc5_over_one_permutaion += acc5.item()

            # now, measure accuracy on permuted labels
            target = target[torch.randperm(len(target))]  # scrambling the labels
            acc1_perm, acc5_perm = accuracy(output, target, topk=(1, 5))
            acc1_chance_over_one_permutation += acc1_perm.item()
            acc5_chance_over_one_permutation += acc5_perm.item()
            cnt += 1

    vec_acc1.append(acc1_over_one_permutaion / cnt)
    vec_acc1_chance.append(acc1_chance_over_one_permutation / cnt)
    vec_acc5.append(acc5_over_one_permutaion / cnt)
    vec_acc5_chance.append(acc5_chance_over_one_permutation / cnt)

p_acc1 = stats.ttest_ind(vec_acc1, vec_acc1_chance, equal_var=False)
p_acc5 = stats.ttest_ind(vec_acc5, vec_acc5_chance, equal_var=False)

return p_acc1, p_acc5

'''

from tqdm import tqdm

def validate_significance(val_loader, model, criterion, args):
    model.eval()

    vec_acc1 = []
    vec_acc1_chance = []
    vec_acc5 = []
    vec_acc5_chance = []

    for ss in tqdm(range(0, args.num_permutations)):
        ....

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM