[英]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.