From 103277fadd84b33154c682afd8cbe345edaa9956 Mon Sep 17 00:00:00 2001 From: "Harle, Antoine (Contracteur)" Date: Thu, 14 Nov 2019 21:17:54 -0500 Subject: [PATCH] Refactoring de TF_dict --- higher/dataug.py | 160 +++++++++++++++++- ...)-LeNet)-2 epochs (dataug:0)- 10 in_it.png | Bin 56619 -> 0 bytes ...2)-LeNet)-3 epochs (dataug:0)- 0 in_it.png | Bin 46084 -> 0 bytes higher/res/LeNet-3 epochs.png | Bin 36705 -> 0 bytes higher/test_dataug.py | 11 +- higher/train_utils.py | 4 +- higher/transformations.py | 61 +++++-- higher/utils.py | 32 ++++ 8 files changed, 245 insertions(+), 23 deletions(-) delete mode 100644 higher/res/Aug_mod(Data_augV4(Uniform-14 TF x 2)-LeNet)-2 epochs (dataug:0)- 10 in_it.png delete mode 100644 higher/res/Aug_mod(Data_augV4(Uniform-14 TF x 2)-LeNet)-3 epochs (dataug:0)- 0 in_it.png delete mode 100644 higher/res/LeNet-3 epochs.png diff --git a/higher/dataug.py b/higher/dataug.py index 24654c3..f0d6bf8 100644 --- a/higher/dataug.py +++ b/higher/dataug.py @@ -322,8 +322,9 @@ class Data_augV4(nn.Module): #Transformations avec mask #self._TF_matrix={} #self._input_info={'h':0, 'w':0, 'device':None} #Input associe a TF_matrix - self._mag_fct = TF_dict - self._TF=list(self._mag_fct.keys()) + #self._mag_fct = TF_dict + self._TF_dict = TF_dict + self._TF= list(self._TF_dict.keys()) self._nb_tf= len(self._TF) self._N_TF = N_TF @@ -356,7 +357,6 @@ class Data_augV4(nn.Module): #Transformations avec mask self._distrib = uniforme_dist else: self._distrib = (self._mix_factor*self._params["prob"]+(1-self._mix_factor)*uniforme_dist).softmax(dim=1) #Mix distrib reel / uniforme avec mix_factor - print(self.distrib.shape) cat_distrib= Categorical(probs=torch.ones((batch_size, self._nb_tf), device=device)*self._distrib) sample = cat_distrib.sample() @@ -414,6 +414,7 @@ class Data_augV4(nn.Module): #Transformations avec mask magnitude=self._fixed_mag tf=self._TF[tf_idx] + ''' ## Geometric TF ## if tf=='Identity': pass @@ -449,6 +450,8 @@ class Data_augV4(nn.Module): #Transformations avec mask raise Exception("Invalid TF requested : ", tf) x[mask]=smp_x # Refusionner eviter x[mask] : in place + ''' + x[mask]=self._TF_dict[tf](x=smp_x, mag=magnitude) # Refusionner eviter x[mask] : in place #idx= mask.nonzero() #print('-'*8) @@ -527,6 +530,157 @@ class Data_augV4(nn.Module): #Transformations avec mask else: return "Data_augV4(Mix %.1f-%d TF x %d)" % (self._mix_factor, self._nb_tf, self._N_TF) +class Data_augV5(nn.Module): #Transformations avec mask + def __init__(self, TF_dict=TF.TF_dict, N_TF=1, mix_dist=0.0): + super(Data_augV5, self).__init__() + assert len(TF_dict)>0 + + self._data_augmentation = True + + #self._TF_matrix={} + #self._input_info={'h':0, 'w':0, 'device':None} #Input associe a TF_matrix + self._mag_fct = TF_dict + self._TF=list(self._mag_fct.keys()) + self._nb_tf= len(self._TF) + + self._N_TF = N_TF + + self._fixed_mag=5 #[0, PARAMETER_MAX] + self._params = nn.ParameterDict({ + "prob": nn.Parameter(torch.ones(self._nb_tf)/self._nb_tf), #Distribution prob uniforme + }) + + self._samples = [] + + self._mix_dist = False + if mix_dist != 0.0: + self._mix_dist = True + self._mix_factor = max(min(mix_dist, 1.0), 0.0) + + def forward(self, x): + if self._data_augmentation: + device = x.device + batch_size, h, w = x.shape[0], x.shape[2], x.shape[3] + + x = copy.deepcopy(x) #Evite de modifier les echantillons par reference (Problematique pour des utilisations paralleles) + self._samples = [] + + for _ in range(self._N_TF): + ## Echantillonage ## + uniforme_dist = torch.ones(1,self._nb_tf,device=device).softmax(dim=1) + + if not self._mix_dist: + self._distrib = uniforme_dist + else: + self._distrib = (self._mix_factor*self._params["prob"]+(1-self._mix_factor)*uniforme_dist).softmax(dim=1) #Mix distrib reel / uniforme avec mix_factor + + cat_distrib= Categorical(probs=torch.ones((batch_size, self._nb_tf), device=device)*self._distrib) + sample = cat_distrib.sample() + self._samples.append(sample) + + ## Transformations ## + x = self.apply_TF(x, sample) + return x + + def apply_TF(self, x, sampled_TF): + device = x.device + smps_x=[] + masks=[] + for tf_idx in range(self._nb_tf): + mask = sampled_TF==tf_idx #Create selection mask + smp_x = x[mask] #torch.masked_select() ? + + if smp_x.shape[0]!=0: #if there's data to TF + magnitude=self._fixed_mag + tf=self._TF[tf_idx] + + ## Geometric TF ## + if tf=='Identity': + pass + elif tf=='FlipLR': + smp_x = TF.flipLR(smp_x) + elif tf=='FlipUD': + smp_x = TF.flipUD(smp_x) + elif tf=='Rotate': + smp_x = TF.rotate(smp_x, angle=torch.tensor([self._mag_fct[tf](magnitude) for _ in smp_x], device=device)) + elif tf=='TranslateX' or tf=='TranslateY': + smp_x = TF.translate(smp_x, translation=torch.tensor([self._mag_fct[tf](magnitude) for _ in smp_x], device=device)) + elif tf=='ShearX' or tf=='ShearY' : + smp_x = TF.shear(smp_x, shear=torch.tensor([self._mag_fct[tf](magnitude) for _ in smp_x], device=device)) + + ## Color TF (Expect image in the range of [0, 1]) ## + elif tf=='Contrast': + smp_x = TF.contrast(smp_x, contrast_factor=torch.tensor([self._mag_fct[tf](magnitude) for _ in smp_x], device=device)) + elif tf=='Color': + smp_x = TF.color(smp_x, color_factor=torch.tensor([self._mag_fct[tf](magnitude) for _ in smp_x], device=device)) + elif tf=='Brightness': + smp_x = TF.brightness(smp_x, brightness_factor=torch.tensor([self._mag_fct[tf](magnitude) for _ in smp_x], device=device)) + elif tf=='Sharpness': + smp_x = TF.sharpeness(smp_x, sharpness_factor=torch.tensor([self._mag_fct[tf](magnitude) for _ in smp_x], device=device)) + elif tf=='Posterize': + smp_x = TF.posterize(smp_x, bits=torch.tensor([1 for _ in smp_x], device=device)) + elif tf=='Solarize': + smp_x = TF.solarize(smp_x, thresholds=torch.tensor([self._mag_fct[tf](magnitude) for _ in smp_x], device=device)) + elif tf=='Equalize': + smp_x = TF.equalize(smp_x) + elif tf=='Auto_Contrast': + smp_x = TF.auto_contrast(smp_x) + else: + raise Exception("Invalid TF requested : ", tf) + + x[mask]=smp_x # Refusionner eviter x[mask] : in place + return x + + def adjust_prob(self, soft=False): #Detach from gradient ? + + if soft : + self._params['prob'].data=F.softmax(self._params['prob'].data, dim=0) #Trop 'soft', bloque en dist uniforme si lr trop faible + else: + self._params['prob'].data = F.relu(self._params['prob'].data) + self._params['prob'].data = self._params['prob']/sum(self._params['prob']) #Contrainte sum(p)=1 + + def loss_weight(self): + # 1 seule TF + #self._sample = self._samples[-1] + #w_loss = torch.zeros((self._sample.shape[0],self._nb_tf), device=self._sample.device) + #w_loss.scatter_(dim=1, index=self._sample.view(-1,1), value=1) + #w_loss = w_loss * self._params["prob"]/self._distrib #Ponderation par les proba (divisee par la distrib pour pas diminuer la loss) + #w_loss = torch.sum(w_loss,dim=1) + + #Plusieurs TF sequentielles (Hypothese ordre negligeable) + w_loss = torch.zeros((self._samples[0].shape[0],self._nb_tf), device=self._samples[0].device) + for sample in self._samples: + tmp_w = torch.zeros(w_loss.size(),device=w_loss.device) + tmp_w.scatter_(dim=1, index=sample.view(-1,1), value=1/self._N_TF) + w_loss += tmp_w + + w_loss = w_loss * self._params["prob"]/self._distrib #Ponderation par les proba (divisee par la distrib pour pas diminuer la loss) + w_loss = torch.sum(w_loss,dim=1) + return w_loss + + + def train(self, mode=None): + if mode is None : + mode=self._data_augmentation + self.augment(mode=mode) #Inutile si mode=None + super(Data_augV5, self).train(mode) + + def eval(self): + self.train(mode=False) + + def augment(self, mode=True): + self._data_augmentation=mode + + def __getitem__(self, key): + return self._params[key] + + def __str__(self): + if not self._mix_dist: + return "Data_augV5(Uniform-%d TF x %d)" % (self._nb_tf, self._N_TF) + else: + return "Data_augV5(Mix %.1f-%d TF x %d)" % (self._mix_factor, self._nb_tf, self._N_TF) + + class Augmented_model(nn.Module): def __init__(self, data_augmenter, model): super(Augmented_model, self).__init__() diff --git a/higher/res/Aug_mod(Data_augV4(Uniform-14 TF x 2)-LeNet)-2 epochs (dataug:0)- 10 in_it.png b/higher/res/Aug_mod(Data_augV4(Uniform-14 TF x 2)-LeNet)-2 epochs (dataug:0)- 10 in_it.png deleted file mode 100644 index 0e548f227415fbebe0ebd98bd844f91363683a9e..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 56619 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 Ar2qf` diff --git a/higher/res/Aug_mod(Data_augV4(Uniform-14 TF x 2)-LeNet)-3 epochs (dataug:0)- 0 in_it.png b/higher/res/Aug_mod(Data_augV4(Uniform-14 TF x 2)-LeNet)-3 epochs (dataug:0)- 0 in_it.png deleted file mode 100644 index 824c495d75f34435d8228e064845f11afa0cd628..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 46084 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

A1MZw# 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 bPRC~kA0AnfvoG*G1&6)O=JiG2?K<**KHZe_ diff --git a/higher/res/LeNet-3 epochs.png b/higher/res/LeNet-3 epochs.png deleted file mode 100644 index e3ddcf56fd976f8eb4a2bc13f482e86741b380eb..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 36705 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 H&ddJ+HvHrX diff --git a/higher/test_dataug.py b/higher/test_dataug.py index bd0c023..f2b88ab 100644 --- a/higher/test_dataug.py +++ b/higher/test_dataug.py @@ -64,18 +64,18 @@ if __name__ == "__main__": print('-'*9) ''' #### Augmented Model #### - ''' + #''' t0 = time.process_time() tf_dict = {k: TF.TF_dict[k] for k in tf_names} #tf_dict = TF.TF_dict - #aug_model = Augmented_model(Data_augV4(TF_dict=tf_dict, N_TF=2, mix_dist=0.0), LeNet(3,10)).to(device) - aug_model = Augmented_model(Data_augV4(TF_dict=tf_dict, N_TF=2, mix_dist=0.0), WideResNet(num_classes=10, wrn_size=160)).to(device) + aug_model = Augmented_model(Data_augV4(TF_dict=tf_dict, N_TF=2, mix_dist=0.5), LeNet(3,10)).to(device) + #aug_model = Augmented_model(Data_augV4(TF_dict=tf_dict, N_TF=2, mix_dist=0.0), WideResNet(num_classes=10, wrn_size=160)).to(device) print(str(aug_model), 'on', device_name) #run_simple_dataug(inner_it=n_inner_iter, epochs=epochs) log= run_dist_dataugV2(model=aug_model, epochs=epochs, inner_it=n_inner_iter, dataug_epoch_start=dataug_epoch_start, print_freq=1, loss_patience=10) #### - plot_res(log, fig_name="res/{}-{} epochs (dataug:{})- {} in_it".format(str(aug_model),epochs,dataug_epoch_start,n_inner_iter), param_names=tf_names) + plot_resV2(log, fig_name="res/{}-{} epochs (dataug:{})- {} in_it".format(str(aug_model),epochs,dataug_epoch_start,n_inner_iter), param_names=tf_names) print('-'*9) times = [x["time"] for x in log] out = {"Accuracy": max([x["acc"] for x in log]), "Time": (np.mean(times),np.std(times)), "Device": device_name, "Param_names": aug_model.TF_names(), "Log": log} @@ -86,12 +86,13 @@ if __name__ == "__main__": print('Execution Time : %.00f (s?)'%(time.process_time() - t0)) print('-'*9) - ''' + #''' #### TF number tests #### #''' res_folder="res/TF_nb_tests/" epochs= 100 inner_its = [0, 1, 10] + dist_mix = [0.0, 0.5] dataug_epoch_starts= [0] TF_nb = [len(TF.TF_dict)] #range(10,len(TF.TF_dict)+1) #[len(TF.TF_dict)] N_seq_TF= [2, 3, 4, 6] diff --git a/higher/train_utils.py b/higher/train_utils.py index bf970a6..6ed1e09 100644 --- a/higher/train_utils.py +++ b/higher/train_utils.py @@ -586,8 +586,8 @@ def run_dist_dataugV2(model, epochs=1, inner_it=0, dataug_epoch_start=0, print_f logits = fmodel(xs) # modified `params` can also be passed as a kwarg loss = F.cross_entropy(logits, ys, reduction='none') # no need to call loss.backwards() - #PAS PONDERE LOSS POUR DIST MIX - if fmodel._data_augmentation: # and not fmodel['data_aug']._mix_dist: #Weight loss + + if fmodel._data_augmentation: #Weight loss w_loss = fmodel['data_aug'].loss_weight().to(device) loss = loss * w_loss loss = loss.mean() diff --git a/higher/transformations.py b/higher/transformations.py index ec6e29b..cd21eff 100644 --- a/higher/transformations.py +++ b/higher/transformations.py @@ -3,30 +3,54 @@ import kornia import random ### Available TF for Dataug ### +''' TF_dict={ #f(mag_normalise)=mag_reelle ## Geometric TF ## 'Identity' : (lambda mag: None), 'FlipUD' : (lambda mag: None), 'FlipLR' : (lambda mag: None), - 'Rotate': (lambda mag: random.randint(-int_parameter(mag, maxval=30), int_parameter(mag, maxval=30))), - 'TranslateX': (lambda mag: [random.randint(-int_parameter(mag, maxval=20), int_parameter(mag, maxval=20)), 0]), - 'TranslateY': (lambda mag: [0, random.randint(-int_parameter(mag, maxval=20), int_parameter(mag, maxval=20))]), - 'ShearX': (lambda mag: [random.uniform(-float_parameter(mag, maxval=0.3), float_parameter(mag, maxval=0.3)), 0]), - 'ShearY': (lambda mag: [0, random.uniform(-float_parameter(mag, maxval=0.3), float_parameter(mag, maxval=0.3))]), + 'Rotate': (lambda mag: rand_int(mag,maxval=30)), + 'TranslateX': (lambda mag: [rand_int(mag,maxval=20), 0]), + 'TranslateY': (lambda mag: [0, rand_int(mag,maxval=20)]), + 'ShearX': (lambda mag: [rand_float(mag, maxval=0.3), 0]), + 'ShearY': (lambda mag: [0, rand_float(mag, maxval=0.3)]), ## Color TF (Expect image in the range of [0, 1]) ## - 'Contrast': (lambda mag: random.uniform(0.1, float_parameter(mag, maxval=1.9))), - 'Color':(lambda mag: random.uniform(0.1, float_parameter(mag, maxval=1.9))), - 'Brightness':(lambda mag: random.uniform(1., float_parameter(mag, maxval=1.9))), - 'Sharpness':(lambda mag: random.uniform(0.1, float_parameter(mag, maxval=1.9))), - 'Posterize': (lambda mag: random.randint(4, int_parameter(mag, maxval=8))), - 'Solarize': (lambda mag: random.randint(1, int_parameter(mag, maxval=256))/256.), #=>Image entre [0,1] #Pas opti pour des batch + 'Contrast': (lambda mag: rand_float(mag,minval=0.1, maxval=1.9)), + 'Color':(lambda mag: rand_float(mag,minval=0.1, maxval=1.9)), + 'Brightness':(lambda mag: rand_float(mag,minval=1., maxval=1.9)), + 'Sharpness':(lambda mag: rand_float(mag,minval=0.1, maxval=1.9)), + 'Posterize': (lambda mag: rand_int(mag,minval=4, maxval=8)), + 'Solarize': (lambda mag: rand_int(mag,minval=1, maxval=256)/256.), #=>Image entre [0,1] #Pas opti pour des batch #Non fonctionnel #'Auto_Contrast': (lambda mag: None), #Pas opti pour des batch (Super lent) #'Equalize': (lambda mag: None), } +''' +TF_dict={ + ## Geometric TF ## + 'Identity' : (lambda x, mag: x), + 'FlipUD' : (lambda x, mag: flipUD(x)), + 'FlipLR' : (lambda x, mag: flipLR(x)), + 'Rotate': (lambda x, mag: rotate(x, angle=torch.tensor([rand_int(mag, maxval=30)for _ in x], device=x.device))), + 'TranslateX': (lambda x, mag: translate(x, translation=torch.tensor([[rand_int(mag, maxval=20), 0] for _ in x], device=x.device))), + 'TranslateY': (lambda x, mag: translate(x, translation=torch.tensor([[0, rand_int(mag, maxval=20)] for _ in x], device=x.device))), + 'ShearX': (lambda x, mag: shear(x, shear=torch.tensor([[rand_float(mag, maxval=0.3), 0] for _ in x], device=x.device))), + 'ShearY': (lambda x, mag: shear(x, shear=torch.tensor([[0, rand_float(mag, maxval=0.3)] for _ in x], device=x.device))), + ## Color TF (Expect image in the range of [0, 1]) ## + 'Contrast': (lambda x, mag: contrast(x, contrast_factor=torch.tensor([rand_float(mag, minval=0.1, maxval=1.9) for _ in x], device=x.device))), + 'Color':(lambda x, mag: color(x, color_factor=torch.tensor([rand_float(mag, minval=0.1, maxval=1.9) for _ in x], device=x.device))), + 'Brightness':(lambda x, mag: brightness(x, brightness_factor=torch.tensor([rand_float(mag, minval=1., maxval=1.9) for _ in x], device=x.device))), + 'Sharpness':(lambda x, mag: sharpeness(x, sharpness_factor=torch.tensor([rand_float(mag, minval=0.1, maxval=1.9) for _ in x], device=x.device))), + 'Posterize': (lambda x, mag: posterize(x, bits=torch.tensor([rand_int(mag, minval=4, maxval=8) for _ in x], device=x.device))), + 'Solarize': (lambda x, mag: solarize(x, thresholds=torch.tensor([rand_int(mag,minval=1, maxval=256)/256. for _ in x], device=x.device))) , #=>Image entre [0,1] #Pas opti pour des batch + + #Non fonctionnel + #'Auto_Contrast': (lambda mag: None), #Pas opti pour des batch (Super lent) + #'Equalize': (lambda mag: None), +} def int_image(float_image): #ATTENTION : legere perte d'info (granularite : 1/256 = 0.0039) return (float_image*255.).type(torch.uint8) @@ -34,8 +58,19 @@ def int_image(float_image): #ATTENTION : legere perte d'info (granularite : 1/25 def float_image(int_image): return int_image.type(torch.float)/255. -def rand_inverse(value): - return value if random.random() < 0.5 else -value +#def rand_inverse(value): +# return value if random.random() < 0.5 else -value + +def rand_int(mag, maxval, minval=None): #[(-maxval,minval), maxval] + real_max = int_parameter(mag, maxval=maxval) + if not minval : minval = -real_max + return random.randint(minval, real_max) + +def rand_float(mag, maxval, minval=None): #[(-maxval,minval), maxval] + real_max = float_parameter(mag, maxval=maxval) + if not minval : minval = -real_max + return random.uniform(minval, real_max) + #https://github.com/tensorflow/models/blob/fc2056bce6ab17eabdc139061fef8f4f2ee763ec/research/autoaugment/augmentation_transforms.py#L137 PARAMETER_MAX = 10 # What is the max 'level' a transform could be predicted diff --git a/higher/utils.py b/higher/utils.py index eb1be55..b0973d9 100644 --- a/higher/utils.py +++ b/higher/utils.py @@ -48,6 +48,38 @@ def plot_res(log, fig_name='res', param_names=None): plt.savefig(fig_name) plt.close() +def plot_resV2(log, fig_name='res', param_names=None): + + epochs = [x["epoch"] for x in log] + + fig, ax = plt.subplots(nrows=2, ncols=2, figsize=(15, 15)) + + ax[0, 0].set_title('Loss') + ax[0, 0].plot(epochs,[x["train_loss"] for x in log], label='Train') + ax[0, 0].plot(epochs,[x["val_loss"] for x in log], label='Val') + ax[0, 0].legend() + + ax[0, 1].set_title('Acc') + ax[0, 1].plot(epochs,[x["acc"] for x in log]) + + if log[0]["param"]!= None: + ax[1, 1].set_title('Prob') + if not param_names : param_names = ['P'+str(idx) for idx, _ in enumerate(log[0]["param"])] + proba=[[x["param"][idx] for x in log] for idx, _ in enumerate(log[0]["param"])] + ax[1, 1].stackplot(epochs, proba, labels=param_names) + ax[1, 1].legend(param_names, loc='center left', bbox_to_anchor=(1, 0.5)) + + ax[1, 0].set_title('Mean prob') + mean = np.mean([x["param"] for x in log], axis=0) + std = np.std([x["param"] for x in log], axis=0) + ax[1, 0].bar(param_names, mean, yerr=std) + plt.sca(ax[1, 0]), plt.xticks(rotation=90) + + + fig_name = fig_name.replace('.',',') + plt.savefig(fig_name, bbox_inches='tight') + plt.close() + def plot_compare(filenames, fig_name='res'): all_data=[]