def eval_one_epoch_1()

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)