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. """