in lib/helpers/trainer_helper.py [0:0]
def eval_one_epoch_1(self):
self.model.eval()
disp_dict = {} # collect statistics
progress_bar = tqdm.tqdm(total=len(self.test_loader), leave=True, desc='Evaluation Progress')
total_3dbox_accur = 0.
total_size = 0
total_3dbox_accur_easy = 0.
total_3dbox_accur_easy_near = 0.
total_3dbox_accur_easy_far = 0.
total_size_easy = 0
total_size_easy_near = 0
total_size_easy_far = 0
total_3dbox_accur_mod = 0.
total_size_mod = 0
total_3dbox_accur_hard = 0.
total_size_hard = 0
with torch.no_grad():
for batch_idx, batch_data in enumerate(self.test_loader):
batch_data = [item.to(self.device) for item in batch_data]
loss, stat_dict = self.val_decorator(self.model, batch_data, self.cfg['decorator'])
batch_size = stat_dict['box_level'][3]#len(batch_data)
total_size += batch_size
total_3dbox_accur += stat_dict['box_acc']*batch_size
total_size_easy += stat_dict['box_level'][0]
total_3dbox_accur_easy += stat_dict['box_acc_easy']*stat_dict['box_level'][0]
total_size_mod += stat_dict['box_level'][1]
total_3dbox_accur_mod += stat_dict['box_acc_mod']*stat_dict['box_level'][1]
total_size_hard += stat_dict['box_level'][2]
total_3dbox_accur_hard += stat_dict['box_acc_hard']*stat_dict['box_level'][2]
total_size_easy_near += stat_dict['box_level'][4]
total_3dbox_accur_easy_near += stat_dict['box_acc_easy_near']*stat_dict['box_level'][4]
total_size_easy_far += stat_dict['box_level'][5]
total_3dbox_accur_easy_far += stat_dict['box_acc_easy_far']*stat_dict['box_level'][5]
# print('===========>',batch_size, stat_dict['box_level'][0],stat_dict['box_level'][1],stat_dict['box_level'][2],stat_dict['box_level'][4],stat_dict['box_level'][5])
for key in stat_dict.keys():
if key == 'box_level':
continue;
if key not in disp_dict.keys():
disp_dict[key] = 0
disp_dict[key] += stat_dict[key]
progress_bar.update()
progress_bar.close()
# display & log
log_str = ''
for key in sorted(disp_dict.keys()):
disp_dict[key] /= len(self.test_loader)
log_str += ' %s:%.4f,' %(key, disp_dict[key])
self.logger.info(log_str)
#self.logger.info('All accuracy: ', total_3dbox_accur/len(self.test_loader))
print('========>total:',total_3dbox_accur, total_size)
print('==================>Accuracy:', total_3dbox_accur/total_size)
print('========>total easy:',total_3dbox_accur_easy, total_size_easy)
print('==================>Accuracy:', total_3dbox_accur_easy/total_size_easy)
print('========>total mod:',total_3dbox_accur_mod, total_size_mod)
print('==================>Accuracy:', total_3dbox_accur_mod/total_size_mod)
print('========>total hard:',total_3dbox_accur_hard, total_size_hard)
print('==================>Accuracy:', total_3dbox_accur_hard/total_size_hard)
print('========>total easy near:',total_3dbox_accur_easy_near, total_size_easy_near)
print('==================>Accuracy:', total_3dbox_accur_easy_near/total_size_easy_near)
print('========>total easy far:',total_3dbox_accur_easy_far, total_size_easy_far)
print('==================>Accuracy:', total_3dbox_accur_easy_far/total_size_easy_far)