@@ -25,10 +25,11 @@ def evaluate(seq2seq_model, eval_pairs, criterion, eval='val', graph=False):
25
25
eval_pair = eval_pairs [i ]
26
26
input_tensor = eval_pair [0 ][0 ].to (device )
27
27
adj_tensor = eval_pair [0 ][1 ].to (device )
28
+ node_features = eval_pair [0 ][2 ].to (device )
28
29
target_tensor = eval_pair [1 ].to (device )
29
30
30
31
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 )
32
33
else :
33
34
eval_pair = eval_pairs [i ]
34
35
input_tensor = eval_pair [0 ]
@@ -59,12 +60,13 @@ def evaluate(seq2seq_model, eval_pairs, criterion, eval='val', graph=False):
59
60
return loss , f1 , rouge_2 , rouge_l
60
61
61
62
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 ):
63
65
optimizer .zero_grad ()
64
66
65
67
if graph :
66
68
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 )
68
70
else :
69
71
output = seq2seq_model (sequence = input_tensor .view (- 1 ), target = target_tensor .view (- 1 ))
70
72
@@ -83,9 +85,9 @@ def train_iters(seq2seq_model, n_iters, pairs, print_every=1000, learning_rate=0
83
85
train_losses = []
84
86
val_losses = []
85
87
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 = []
89
91
90
92
print_loss_total = 0 # Reset every print_every
91
93
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
115
117
if graph :
116
118
input_tensor = training_pair [0 ][0 ].to (device )
117
119
adj_tensor = training_pair [0 ][1 ].to (device )
120
+ node_features = training_pair [0 ][2 ].to (device )
118
121
target_tensor = training_pair [1 ].to (device )
119
122
120
123
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 )
122
125
else :
123
126
input_tensor = training_pair [0 ]
124
127
target_tensor = training_pair [1 ]
@@ -168,11 +171,12 @@ def train_iters(seq2seq_model, n_iters, pairs, print_every=1000, learning_rate=0
168
171
val_losses .append (val_loss )
169
172
# test_losses.append(test_loss)
170
173
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 )
174
177
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' ))
177
181
178
182
plot_loss (train_losses , val_losses , file_path = model_dir + 'loss.jpg' )
0 commit comments