@@ -202,6 +202,54 @@ def test_saved_model_creation(self):
202
202
saved_model_dir = os .path .join (tmpdirname , "saved_model" , "1" )
203
203
self .assertTrue (os .path .exists (saved_model_dir ))
204
204
205
+ @slow
206
+ def test_saved_model_creation_extended (self ):
207
+ config , inputs_dict = self .model_tester .prepare_config_and_inputs_for_common ()
208
+ config .output_hidden_states = True
209
+ config .output_attentions = True
210
+
211
+ if hasattr (config , "use_cache" ):
212
+ config .use_cache = True
213
+
214
+ encoder_seq_length = getattr (self .model_tester , "encoder_seq_length" , self .model_tester .seq_length )
215
+ encoder_key_length = getattr (self .model_tester , "key_length" , encoder_seq_length )
216
+
217
+ for model_class in self .all_model_classes :
218
+ class_inputs_dict = self ._prepare_for_class (inputs_dict , model_class )
219
+ model = model_class (config )
220
+ num_out = len (model (class_inputs_dict ))
221
+
222
+ with tempfile .TemporaryDirectory () as tmpdirname :
223
+ model .save_pretrained (tmpdirname , saved_model = True )
224
+ saved_model_dir = os .path .join (tmpdirname , "saved_model" , "1" )
225
+ model = tf .keras .models .load_model (saved_model_dir )
226
+ outputs = model (class_inputs_dict )
227
+
228
+ if self .is_encoder_decoder :
229
+ output_hidden_states = outputs ["encoder_hidden_states" ]
230
+ output_attentions = outputs ["encoder_attentions" ]
231
+ else :
232
+ output_hidden_states = outputs ["hidden_states" ]
233
+ output_attentions = outputs ["attentions" ]
234
+
235
+ self .assertEqual (len (outputs ), num_out )
236
+
237
+ expected_num_layers = getattr (
238
+ self .model_tester , "expected_num_hidden_layers" , self .model_tester .num_hidden_layers + 1
239
+ )
240
+
241
+ self .assertEqual (len (output_hidden_states ), expected_num_layers )
242
+ self .assertListEqual (
243
+ list (output_hidden_states [0 ].shape [- 2 :]),
244
+ [self .model_tester .seq_length , self .model_tester .hidden_size ],
245
+ )
246
+
247
+ self .assertEqual (len (output_attentions ), self .model_tester .num_hidden_layers )
248
+ self .assertListEqual (
249
+ list (output_attentions [0 ].shape [- 3 :]),
250
+ [self .model_tester .num_attention_heads , encoder_seq_length , encoder_key_length ],
251
+ )
252
+
205
253
def test_onnx_compliancy (self ):
206
254
if not self .test_onnx :
207
255
return
@@ -263,98 +311,6 @@ def test_onnx_runtime_optimize(self):
263
311
264
312
onnxruntime .InferenceSession (onnx_model .SerializeToString ())
265
313
266
- @slow
267
- def test_saved_model_creation_extended (self ):
268
- config , inputs_dict = self .model_tester .prepare_config_and_inputs_for_common ()
269
- config .output_hidden_states = True
270
- config .output_attentions = True
271
-
272
- if hasattr (config , "use_cache" ):
273
- config .use_cache = True
274
-
275
- for model_class in self .all_model_classes :
276
- class_inputs_dict = self ._prepare_for_class (inputs_dict , model_class )
277
- model = model_class (config )
278
-
279
- model (class_inputs_dict )
280
-
281
- with tempfile .TemporaryDirectory () as tmpdirname :
282
- model .save_pretrained (tmpdirname , saved_model = True )
283
- saved_model_dir = os .path .join (tmpdirname , "saved_model" , "1" )
284
- self .assertTrue (os .path .exists (saved_model_dir ))
285
-
286
- @slow
287
- def test_saved_model_with_hidden_states_output (self ):
288
- config , inputs_dict = self .model_tester .prepare_config_and_inputs_for_common ()
289
- config .output_hidden_states = True
290
- config .output_attentions = False
291
-
292
- if hasattr (config , "use_cache" ):
293
- config .use_cache = False
294
-
295
- for model_class in self .all_model_classes :
296
- class_inputs_dict = self ._prepare_for_class (inputs_dict , model_class )
297
- model = model_class (config )
298
- num_out = len (model (class_inputs_dict ))
299
-
300
- with tempfile .TemporaryDirectory () as tmpdirname :
301
- model .save_pretrained (tmpdirname , saved_model = True )
302
- saved_model_dir = os .path .join (tmpdirname , "saved_model" , "1" )
303
- model = tf .keras .models .load_model (saved_model_dir )
304
- outputs = model (class_inputs_dict )
305
-
306
- if self .is_encoder_decoder :
307
- output = outputs ["encoder_hidden_states" ]
308
- else :
309
- output = outputs ["hidden_states" ]
310
-
311
- self .assertEqual (len (outputs ), num_out )
312
-
313
- expected_num_layers = getattr (
314
- self .model_tester , "expected_num_hidden_layers" , self .model_tester .num_hidden_layers + 1
315
- )
316
-
317
- self .assertEqual (len (output ), expected_num_layers )
318
- self .assertListEqual (
319
- list (output [0 ].shape [- 2 :]),
320
- [self .model_tester .seq_length , self .model_tester .hidden_size ],
321
- )
322
-
323
- @slow
324
- def test_saved_model_with_attentions_output (self ):
325
- config , inputs_dict = self .model_tester .prepare_config_and_inputs_for_common ()
326
- config .output_attentions = True
327
- config .output_hidden_states = False
328
-
329
- if hasattr (config , "use_cache" ):
330
- config .use_cache = False
331
-
332
- encoder_seq_length = getattr (self .model_tester , "encoder_seq_length" , self .model_tester .seq_length )
333
- encoder_key_length = getattr (self .model_tester , "key_length" , encoder_seq_length )
334
-
335
- for model_class in self .all_model_classes :
336
- class_inputs_dict = self ._prepare_for_class (inputs_dict , model_class )
337
- model = model_class (config )
338
- num_out = len (model (class_inputs_dict ))
339
-
340
- with tempfile .TemporaryDirectory () as tmpdirname :
341
- model .save_pretrained (tmpdirname , saved_model = True )
342
- saved_model_dir = os .path .join (tmpdirname , "saved_model" , "1" )
343
- model = tf .keras .models .load_model (saved_model_dir )
344
- outputs = model (class_inputs_dict )
345
-
346
- if self .is_encoder_decoder :
347
- output = outputs ["encoder_attentions" ]
348
- else :
349
- output = outputs ["attentions" ]
350
-
351
- self .assertEqual (len (outputs ), num_out )
352
- self .assertEqual (len (output ), self .model_tester .num_hidden_layers )
353
- self .assertListEqual (
354
- list (output [0 ].shape [- 3 :]),
355
- [self .model_tester .num_attention_heads , encoder_seq_length , encoder_key_length ],
356
- )
357
-
358
314
def test_mixed_precision (self ):
359
315
tf .keras .mixed_precision .experimental .set_policy ("mixed_float16" )
360
316
@@ -554,7 +510,6 @@ def test_train_pipeline_custom_model(self):
554
510
shared = TFSharedEmbeddings (self .model_tester .vocab_size , self .model_tester .hidden_size , name = "shared" )
555
511
config .use_cache = False
556
512
main_layer = main_layer_class (config , embed_tokens = shared )
557
- del inputs_dict ["use_cache" ]
558
513
else :
559
514
main_layer = main_layer_class (config )
560
515
0 commit comments