| from typing import List | |
| from transformers import PretrainedConfig | |
| """ | |
| The configuration of a model is an object that | |
| will contain all the necessary information to build the model. | |
| The three important things to remember when writing you own configuration are the following: | |
| - you have to inherit from PretrainedConfig, | |
| - the __init__ of your PretrainedConfig must accept any kwargs, | |
| - those kwargs need to be passed to the superclass __init__. | |
| """ | |
| class BBSNetConfig(PretrainedConfig): | |
| """ | |
| Defining a model_type for your configuration is not mandatory, | |
| unless you want to register your model with the auto classes.""" | |
| model_type = "bbsnet" | |
| def __init__(self, **kwargs): | |
| super().__init__(**kwargs) | |
| if __name__ == "__main__": | |
| """ | |
| With this done, you can easily create and save your configuration like | |
| you would do with any other model config of the library. | |
| Here is how we can create a resnet50d config and save it: | |
| """ | |
| bbsnet_config = BBSNetConfig() | |
| bbsnet_config.save_pretrained("custom-bbsnet") | |
| """ | |
| This will save a file named config.json inside the folder custom-resnet. | |
| You can then reload your config with the from_pretrained method: | |
| """ | |
| bbsnet_config = BBSNetConfig.from_pretrained("custom-bbsnet") | |
| """ | |
| You can also use any other method of the PretrainedConfig class, | |
| like push_to_hub() to directly upload your config to the Hub. | |
| """ | |