From d160eeee66126d1617be729cc4363cfddedd5b18 Mon Sep 17 00:00:00 2001 From: Caroline DE POURTALES <cdepourt@montana.irit.fr> Date: Thu, 30 Jun 2022 14:01:10 +0200 Subject: [PATCH] best score 81% --- Configuration/config.ini | 8 ++++---- Linker/Linker.py | 13 ++++++++----- 2 files changed, 12 insertions(+), 9 deletions(-) diff --git a/Configuration/config.ini b/Configuration/config.ini index f1e5c0d..0cf354c 100644 --- a/Configuration/config.ini +++ b/Configuration/config.ini @@ -14,11 +14,11 @@ dim_encoder = 768 [MODEL_LINKER] nhead=8 dim_emb_atom = 256 -dim_feedforward_transformer = 768 +dim_feedforward_transformer = 512 num_layers=3 -dim_cat_inter=512 -dim_cat_out=256 -dim_intermediate_FFN=128 +dim_cat_inter=768 +dim_cat_out=512 +dim_intermediate_FFN=256 dim_pre_sinkhorn_transfo=32 dropout=0.1 sinkhorn_iters=5 diff --git a/Linker/Linker.py b/Linker/Linker.py index 9d44b54..370b25b 100644 --- a/Linker/Linker.py +++ b/Linker/Linker.py @@ -100,9 +100,9 @@ class Linker(Module): self.sub_atoms_type_list = list(atom_map_redux.keys()) self.atom_encoder = Embedding(atom_vocab_size, self.dim_emb_atom, padding_idx=self.padding_id) self.atom_encoder.weight.data.uniform_(-0.1, 0.1) - self.position_encoder = PositionalEncoding(self.dim_emb_atom, 0.1, max_len=self.max_atoms_in_sentence) + self.position_encoder = PositionalEncoding(self.dim_emb_atom, dropout, max_len=self.max_atoms_in_sentence) encoder_layer = TransformerEncoderLayer(d_model=self.dim_emb_atom, nhead=self.nhead, - dim_feedforward=self.dim_feedforward_transformer, dropout=0.1) + dim_feedforward=self.dim_feedforward_transformer, dropout=dropout) self.transformer = TransformerEncoder(encoder_layer, num_layers=self.num_layers) # Concatenation with word embedding @@ -116,11 +116,11 @@ class Linker(Module): # Division into positive and negative self.pos_transformation = Sequential( - FFN(self.dim_cat_out, dim_intermediate_FFN, 0.1, d_out=dim_pre_sinkhorn_transfo), + FFN(self.dim_cat_out, dim_intermediate_FFN, dropout, d_out=dim_pre_sinkhorn_transfo), LayerNorm(dim_pre_sinkhorn_transfo, eps=1e-8) ) self.neg_transformation = Sequential( - FFN(self.dim_cat_out, dim_intermediate_FFN, 0.1, d_out=dim_pre_sinkhorn_transfo), + FFN(self.dim_cat_out, dim_intermediate_FFN, dropout, d_out=dim_pre_sinkhorn_transfo), LayerNorm(dim_pre_sinkhorn_transfo, eps=1e-8) ) @@ -128,7 +128,7 @@ class Linker(Module): self.cross_entropy_loss = SinkhornLoss() self.optimizer = AdamW(self.parameters(), lr=learning_rate) - self.scheduler = StepLR(self.optimizer, step_size=2, gamma=0.5) + self.scheduler = StepLR(self.optimizer, step_size=3, gamma=0.5) self.to(self.device) @@ -257,6 +257,8 @@ class Linker(Module): if tensorboard: writer.add_scalars(f'Accuracy', { 'Train': avg_accuracy_train}, epoch_i) + writer.add_scalars(f'Learning rate', { + 'learning_rate': self.scheduler.get_last_lr()}, epoch_i) writer.add_scalars(f'Loss', { 'Train': avg_train_loss}, epoch_i) if validation_rate > 0.0: @@ -319,6 +321,7 @@ class Linker(Module): accuracy_train += mesure_accuracy(batch_true_links, pred_axiom_links, self.max_atoms_in_one_type) self.scheduler.step() + print("learning rate ", self.scheduler.get_last_lr()) # Measure how long this epoch took. training_time = format_time(time.time() - t0) -- GitLab