(self)
| 151 | _check_var(model.encoder.embed_positions) |
| 152 | |
| 153 | def test_advanced_inputs(self): |
| 154 | config, inputs_dict = self.model_tester.prepare_config_and_inputs_for_common() |
| 155 | config.use_cache = False |
| 156 | inputs_dict["input_ids"][:, -2:] = config.pad_token_id |
| 157 | decoder_input_ids, decoder_attn_mask, causal_mask = _prepare_bart_decoder_inputs( |
| 158 | config, inputs_dict["input_ids"] |
| 159 | ) |
| 160 | model = BartModel(config).to(torch_device).eval() |
| 161 | |
| 162 | decoder_features_with_created_mask = model(**inputs_dict)[0] |
| 163 | decoder_features_with_passed_mask = model( |
| 164 | decoder_attention_mask=invert_mask(decoder_attn_mask), decoder_input_ids=decoder_input_ids, **inputs_dict |
| 165 | )[0] |
| 166 | _assert_tensors_equal(decoder_features_with_passed_mask, decoder_features_with_created_mask) |
| 167 | useless_mask = torch.zeros_like(decoder_attn_mask) |
| 168 | decoder_features = model(decoder_attention_mask=useless_mask, **inputs_dict)[0] |
| 169 | self.assertTrue(isinstance(decoder_features, torch.Tensor)) # no hidden states or attentions |
| 170 | self.assertEqual( |
| 171 | decoder_features.size(), (self.model_tester.batch_size, self.model_tester.seq_length, config.d_model) |
| 172 | ) |
| 173 | if decoder_attn_mask.min().item() < -1e3: # some tokens were masked |
| 174 | self.assertFalse((decoder_features_with_created_mask == decoder_features).all().item()) |
| 175 | |
| 176 | # Test different encoder attention masks |
| 177 | decoder_features_with_long_encoder_mask = model( |
| 178 | inputs_dict["input_ids"], attention_mask=inputs_dict["attention_mask"].long() |
| 179 | )[0] |
| 180 | _assert_tensors_equal(decoder_features_with_long_encoder_mask, decoder_features_with_created_mask) |
| 181 | |
| 182 | def test_save_load_strict(self): |
| 183 | config, inputs_dict = self.model_tester.prepare_config_and_inputs_for_common() |
nothing calls this directly
no test coverage detected