@@ -112,22 +112,7 @@ def get_perf(filename):
112
112
return {'p' : precision , 'r' : recall , 'f1' : f1score }
113
113
114
114
115
- # actual model
116
- class basemodel (object ):
117
- ''' load/save structure '''
118
-
119
- def save (self , folder ):
120
- for param in self .params :
121
- numpy .save (os .path .join (folder ,
122
- param .name + '.npy' ), param .get_value ())
123
-
124
- def load (self , folder ):
125
- for param in self .params :
126
- param .set_value (numpy .load (os .path .join (folder ,
127
- param .name + '.npy' )))
128
-
129
-
130
- class model (basemodel ):
115
+ class RNNSLU (object ):
131
116
''' elman neural net model '''
132
117
def __init__ (self , nh , nc , ne , de , cs ):
133
118
'''
@@ -219,8 +204,19 @@ def train(self, x, y, window_size, learning_rate):
219
204
self .sentence_train (words , labels , learning_rate )
220
205
self .normalize ()
221
206
207
+ def save (self , folder ):
208
+ for param in self .params :
209
+ numpy .save (os .path .join (folder ,
210
+ param .name + '.npy' ), param .get_value ())
211
+
212
+ def load (self , folder ):
213
+ for param in self .params :
214
+ param .set_value (numpy .load (os .path .join (folder ,
215
+ param .name + '.npy' )))
222
216
223
- def main (param , sync = None ):
217
+
218
+
219
+ def main (param ):
224
220
225
221
folder = os .path .basename (__file__ ).split ('.' )[0 ]
226
222
if not os .path .exists (folder ):
@@ -251,11 +247,11 @@ def main(param, sync=None):
251
247
numpy .random .seed (param ['seed' ])
252
248
random .seed (param ['seed' ])
253
249
254
- rnn = model (nh = param ['nhidden' ],
255
- nc = nclasses ,
256
- ne = vocsize ,
257
- de = param ['emb_dimension' ],
258
- cs = param ['win' ])
250
+ rnn = RNNSLU (nh = param ['nhidden' ],
251
+ nc = nclasses ,
252
+ ne = vocsize ,
253
+ de = param ['emb_dimension' ],
254
+ cs = param ['win' ])
259
255
260
256
# train with early stopping on validation set
261
257
best_f1 = - numpy .inf
@@ -293,8 +289,6 @@ def main(param, sync=None):
293
289
294
290
if res_valid ['f1' ] > best_f1 :
295
291
296
- if sync is not None :
297
- sync ()
298
292
if param ['savemodel' ]:
299
293
rnn .save (folder )
300
294
@@ -332,8 +326,7 @@ def main(param, sync=None):
332
326
'best test F1' , param ['tf1' ],
333
327
'with the model' , folder )
334
328
335
- if __name__ == '__main__' :
336
-
329
+ def test_rnnslu (n_epochs ):
337
330
# best model
338
331
s = {'fold' : 3 ,
339
332
# 5 folds 0,1,2,3,4
@@ -349,7 +342,8 @@ def main(param, sync=None):
349
342
'seed' : 345 ,
350
343
'emb_dimension' : 50 ,
351
344
# dimension of word embedding
352
- 'nepochs' : 60 ,
345
+ 'nepochs' : n_epochs ,
346
+ # 60 is recommended
353
347
'savemodel' : True }
354
348
355
349
main (s )
0 commit comments