@@ -25,10 +25,11 @@ def evaluate(seq2seq_model, eval_pairs, criterion, eval='val', graph=False):
2525 eval_pair = eval_pairs [i ]
2626 input_tensor = eval_pair [0 ][0 ].to (device )
2727 adj_tensor = eval_pair [0 ][1 ].to (device )
28+ node_features = eval_pair [0 ][2 ].to (device )
2829 target_tensor = eval_pair [1 ].to (device )
2930
3031 output = seq2seq_model (sequence = input_tensor .view (- 1 ), adj = adj_tensor ,
31- target = target_tensor .view (- 1 ))
32+ target = target_tensor .view (- 1 ), node_features = node_features )
3233 else :
3334 eval_pair = eval_pairs [i ]
3435 input_tensor = eval_pair [0 ]
@@ -59,12 +60,13 @@ def evaluate(seq2seq_model, eval_pairs, criterion, eval='val', graph=False):
5960 return loss , f1 , rouge_2 , rouge_l
6061
6162
62- def train (input_tensor , target_tensor , seq2seq_model , optimizer , criterion , graph , adj_tensor = None ):
63+ def train (input_tensor , target_tensor , seq2seq_model , optimizer , criterion , graph ,
64+ adj_tensor = None , node_features = None ):
6365 optimizer .zero_grad ()
6466
6567 if graph :
6668 output = seq2seq_model (sequence = input_tensor .view (- 1 ), adj = adj_tensor ,
67- target = target_tensor .view (- 1 ))
69+ target = target_tensor .view (- 1 ), node_features = node_features )
6870 else :
6971 output = seq2seq_model (sequence = input_tensor .view (- 1 ), target = target_tensor .view (- 1 ))
7072
@@ -83,9 +85,9 @@ def train_iters(seq2seq_model, n_iters, pairs, print_every=1000, learning_rate=0
8385 train_losses = []
8486 val_losses = []
8587
86- # test_f1_scores = []
87- # test_rouge_2_scores = []
88- # test_rouge_l_scores = []
88+ val_f1_scores = []
89+ val_rouge_2_scores = []
90+ val_rouge_l_scores = []
8991
9092 print_loss_total = 0 # Reset every print_every
9193 plot_loss_total = 0 # Reset every plot_every
@@ -115,10 +117,11 @@ def train_iters(seq2seq_model, n_iters, pairs, print_every=1000, learning_rate=0
115117 if graph :
116118 input_tensor = training_pair [0 ][0 ].to (device )
117119 adj_tensor = training_pair [0 ][1 ].to (device )
120+ node_features = training_pair [0 ][2 ].to (device )
118121 target_tensor = training_pair [1 ].to (device )
119122
120123 loss , pred = train (input_tensor , target_tensor , seq2seq_model , optimizer ,
121- criterion , adj_tensor = adj_tensor , graph = graph )
124+ criterion , adj_tensor = adj_tensor , graph = graph , node_features = node_features )
122125 else :
123126 input_tensor = training_pair [0 ]
124127 target_tensor = training_pair [1 ]
@@ -168,11 +171,12 @@ def train_iters(seq2seq_model, n_iters, pairs, print_every=1000, learning_rate=0
168171 val_losses .append (val_loss )
169172 # test_losses.append(test_loss)
170173
171- # test_f1_scores .append(test_f1 )
172- # test_rouge_2_scores .append(test_rouge_2 )
173- # test_rouge_l_scores .append(test_rouge_l )
174+ val_f1_scores .append (val_f1 )
175+ val_rouge_2_scores .append (val_rouge_2 )
176+ val_rouge_l_scores .append (val_rouge_l )
174177
175- pickle .dump ([train_losses , val_losses ],
176- open (model_dir + 'res.pkl' , 'wb' ))
178+ pickle .dump ([train_losses , val_losses , val_f1_scores , val_rouge_2_scores ,
179+ val_rouge_l_scores ],
180+ open ('results/res.pkl' , 'wb' ))
177181
178182 plot_loss (train_losses , val_losses , file_path = model_dir + 'loss.jpg' )
0 commit comments