Beispiel #1
0
 def addLossResults(self, i_epoch, loss, dataset_instance, show=1):
     #function to save loss and print it
     self.list_loss[dataset_instance].append(loss)
     self.list_loss_register[dataset_instance].append(i_epoch)
     if show:
         #color given the dataset instance
         if dataset_instance == 0: color = (19, 161, 14)
         elif dataset_instance == 1: color = (193, 156, 0)
         else: color = (204, 0, 0)
         print(ost.PRINTCOLOR(*color), end="")  #set color
         text = self.dataset_names[dataset_instance]
         print('Epoch %3d -> %s Loss: %1.6f' % (i_epoch, text, loss))
         print(ost.RESETCOLOR, end="")  #reset color
Beispiel #2
0
    def addFullResults(self, i_epoch, cm, loss, dataset_instance, show=1):
        #function to save loss and other metric from CM
        #RETURN : IS_BEST only if dataset instance is 1 (VALIDATION set)
        #ISBEST is TRUE if current epoch got best mIoU ever

        #color given the dataset instance
        if dataset_instance == 0: color = (19, 161, 14)
        elif dataset_instance == 1: color = (193, 156, 0)
        else: color = (204, 0, 0)
        #get dataset instance name (train/val/test)
        text = self.dataset_names[dataset_instance]

        print(ost.PRINTCOLOR(*color), end="")  #set color
        mIoU, ious = cm.class_IoU(show)  #calcul iou and miou and display IoU
        oa = cm.overall_accuracy()  #calcul OA
        #display general metrics
        if show:
            print('Epoch %3d -> %s Overall Accuracy: %3.2f%% %s mIoU : %3.2f%% %s Loss: %1.6f' \
                  % (i_epoch, text, oa,text, mIoU,text, loss))
        print(ost.RESETCOLOR, end="")  #reset color

        #save metric values in containers
        self.list_cm[dataset_instance].append(cm)
        self.list_loss[dataset_instance].append(loss)
        self.list_mIoU[dataset_instance].append(mIoU)
        self.list_ious[dataset_instance].append(ious)
        self.list_oa[dataset_instance].append(oa)
        self.list_register[dataset_instance].append(i_epoch)
        self.list_loss_register[dataset_instance].append(i_epoch)

        #check if current epoch is best epoch by comparing mIoU
        isBest = True if mIoU >= max(
            self.list_mIoU[dataset_instance]) else False
        if isBest and dataset_instance == 1:  #verif if we really are in VALIDATION DATASET INSTANCE
            self.best = i_epoch
            self.best_id = self.list_mIoU[dataset_instance].index(mIoU)
        return isBest