Add test to ensure models can take int64 inputs (#17210)
* Add test to ensure models can take int64 inputs * is_integer is an attribute, not a method * Fix test when some inputs aren't tensors * Add casts to blenderbot and blenderbot-small * Add casts to the other failing models
This commit is contained in:
@@ -1372,6 +1372,26 @@ class TFModelTesterMixin:
|
||||
val_loss2 = history2.history["val_loss"][0]
|
||||
self.assertTrue(np.allclose(val_loss1, val_loss2, atol=1e-2, rtol=1e-3))
|
||||
|
||||
def test_int64_inputs(self):
|
||||
config, inputs_dict = self.model_tester.prepare_config_and_inputs_for_common()
|
||||
for model_class in self.all_model_classes:
|
||||
prepared_for_class = self._prepare_for_class(
|
||||
inputs_dict.copy(),
|
||||
model_class,
|
||||
return_labels=True if "labels" in inspect.signature(model_class.call).parameters.keys() else False,
|
||||
)
|
||||
if not any(
|
||||
[tensor.dtype.is_integer for tensor in prepared_for_class.values() if isinstance(tensor, tf.Tensor)]
|
||||
):
|
||||
return # No integer inputs means no need for this test
|
||||
|
||||
prepared_for_class = {
|
||||
key: tf.cast(tensor, tf.int64) if isinstance(tensor, tf.Tensor) and tensor.dtype.is_integer else tensor
|
||||
for key, tensor in prepared_for_class.items()
|
||||
}
|
||||
model = model_class(config)
|
||||
model(**prepared_for_class) # No assertion, we're just checking this doesn't throw an error
|
||||
|
||||
def test_generate_with_headmasking(self):
|
||||
attention_names = ["encoder_attentions", "decoder_attentions", "cross_attentions"]
|
||||
config, inputs_dict = self.model_tester.prepare_config_and_inputs_for_common()
|
||||
|
||||
Reference in New Issue
Block a user