Update model configs - Allow setters for common properties (#13026)
* refactor GPT Config to allow dyn. properties * make attribute_map a class attribute * remove old code * update unit test to test config: Add test for common properties setter * update unit test to test config: Add test for common properties passed as parameters to __init__ * update to black code format * Allow that setters are not defined for certain config classes * update config classes to implement attribute_map * bugfix lxmert config - id2labels was not defined when num_labels was set * update broken configs - add attribute_maps * update bart config * update black codestyle * update documentation on common config attributes * update GPTJ config to new attribute map * update docs on common attributes * gptj config: add max_position_embeddings * gptj config: format with black * update speech to text 2 config * format doc file to max_len 119 * update config template
This commit is contained in:
@@ -34,11 +34,39 @@ class ConfigTester(object):
|
||||
|
||||
def create_and_test_config_common_properties(self):
|
||||
config = self.config_class(**self.inputs_dict)
|
||||
common_properties = ["hidden_size", "num_attention_heads", "num_hidden_layers"]
|
||||
|
||||
# Add common fields for text models
|
||||
if self.has_text_modality:
|
||||
self.parent.assertTrue(hasattr(config, "vocab_size"))
|
||||
self.parent.assertTrue(hasattr(config, "hidden_size"))
|
||||
self.parent.assertTrue(hasattr(config, "num_attention_heads"))
|
||||
self.parent.assertTrue(hasattr(config, "num_hidden_layers"))
|
||||
common_properties.extend(["vocab_size"])
|
||||
|
||||
# Test that config has the common properties as getters
|
||||
for prop in common_properties:
|
||||
self.parent.assertTrue(hasattr(config, prop), msg=f"`{prop}` does not exist")
|
||||
|
||||
# Test that config has the common properties as setter
|
||||
for idx, name in enumerate(common_properties):
|
||||
try:
|
||||
setattr(config, name, idx)
|
||||
self.parent.assertEqual(
|
||||
getattr(config, name), idx, msg=f"`{name} value {idx} expected, but was {getattr(config, name)}"
|
||||
)
|
||||
except NotImplementedError:
|
||||
# Some models might not be able to implement setters for common_properties
|
||||
# In that case, a NotImplementedError is raised
|
||||
pass
|
||||
|
||||
# Test if config class can be called with Config(prop_name=..)
|
||||
for idx, name in enumerate(common_properties):
|
||||
try:
|
||||
config = self.config_class(**{name: idx})
|
||||
self.parent.assertEqual(
|
||||
getattr(config, name), idx, msg=f"`{name} value {idx} expected, but was {getattr(config, name)}"
|
||||
)
|
||||
except NotImplementedError:
|
||||
# Some models might not be able to implement setters for common_properties
|
||||
# In that case, a NotImplementedError is raised
|
||||
pass
|
||||
|
||||
def create_and_test_config_to_json_string(self):
|
||||
config = self.config_class(**self.inputs_dict)
|
||||
|
||||
Reference in New Issue
Block a user