Spaces:
Runtime error
Runtime error
<!--Copyright 2020 The HuggingFace Team. All rights reserved. | |
Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with | |
the License. You may obtain a copy of the License at | |
http://www.apache.org/licenses/LICENSE-2.0 | |
Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on | |
an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the | |
specific language governing permissions and limitations under the License. | |
--> | |
# Auto Classes | |
In many cases, the architecture you want to use can be guessed from the name or the path of the pretrained model you | |
are supplying to the `from_pretrained()` method. AutoClasses are here to do this job for you so that you | |
automatically retrieve the relevant model given the name/path to the pretrained weights/config/vocabulary. | |
Instantiating one of [`AutoConfig`], [`AutoModel`], and | |
[`AutoTokenizer`] will directly create a class of the relevant architecture. For instance | |
```python | |
model = AutoModel.from_pretrained("bert-base-cased") | |
``` | |
will create a model that is an instance of [`BertModel`]. | |
There is one class of `AutoModel` for each task, and for each backend (PyTorch, TensorFlow, or Flax). | |
## Extending the Auto Classes | |
Each of the auto classes has a method to be extended with your custom classes. For instance, if you have defined a | |
custom class of model `NewModel`, make sure you have a `NewModelConfig` then you can add those to the auto | |
classes like this: | |
```python | |
from transformers import AutoConfig, AutoModel | |
AutoConfig.register("new-model", NewModelConfig) | |
AutoModel.register(NewModelConfig, NewModel) | |
``` | |
You will then be able to use the auto classes like you would usually do! | |
<Tip warning={true}> | |
If your `NewModelConfig` is a subclass of [`~transformer.PretrainedConfig`], make sure its | |
`model_type` attribute is set to the same key you use when registering the config (here `"new-model"`). | |
Likewise, if your `NewModel` is a subclass of [`PreTrainedModel`], make sure its | |
`config_class` attribute is set to the same class you use when registering the model (here | |
`NewModelConfig`). | |
</Tip> | |
## AutoConfig | |
[[autodoc]] AutoConfig | |
## AutoTokenizer | |
[[autodoc]] AutoTokenizer | |
## AutoFeatureExtractor | |
[[autodoc]] AutoFeatureExtractor | |
## AutoImageProcessor | |
[[autodoc]] AutoImageProcessor | |
## AutoProcessor | |
[[autodoc]] AutoProcessor | |
## Generic model classes | |
The following auto classes are available for instantiating a base model class without a specific head. | |
### AutoModel | |
[[autodoc]] AutoModel | |
### TFAutoModel | |
[[autodoc]] TFAutoModel | |
### FlaxAutoModel | |
[[autodoc]] FlaxAutoModel | |
## Generic pretraining classes | |
The following auto classes are available for instantiating a model with a pretraining head. | |
### AutoModelForPreTraining | |
[[autodoc]] AutoModelForPreTraining | |
### TFAutoModelForPreTraining | |
[[autodoc]] TFAutoModelForPreTraining | |
### FlaxAutoModelForPreTraining | |
[[autodoc]] FlaxAutoModelForPreTraining | |
## Natural Language Processing | |
The following auto classes are available for the following natural language processing tasks. | |
### AutoModelForCausalLM | |
[[autodoc]] AutoModelForCausalLM | |
### TFAutoModelForCausalLM | |
[[autodoc]] TFAutoModelForCausalLM | |
### FlaxAutoModelForCausalLM | |
[[autodoc]] FlaxAutoModelForCausalLM | |
### AutoModelForMaskedLM | |
[[autodoc]] AutoModelForMaskedLM | |
### TFAutoModelForMaskedLM | |
[[autodoc]] TFAutoModelForMaskedLM | |
### FlaxAutoModelForMaskedLM | |
[[autodoc]] FlaxAutoModelForMaskedLM | |
### AutoModelForSeq2SeqLM | |
[[autodoc]] AutoModelForSeq2SeqLM | |
### TFAutoModelForSeq2SeqLM | |
[[autodoc]] TFAutoModelForSeq2SeqLM | |
### FlaxAutoModelForSeq2SeqLM | |
[[autodoc]] FlaxAutoModelForSeq2SeqLM | |
### AutoModelForSequenceClassification | |
[[autodoc]] AutoModelForSequenceClassification | |
### TFAutoModelForSequenceClassification | |
[[autodoc]] TFAutoModelForSequenceClassification | |
### FlaxAutoModelForSequenceClassification | |
[[autodoc]] FlaxAutoModelForSequenceClassification | |
### AutoModelForMultipleChoice | |
[[autodoc]] AutoModelForMultipleChoice | |
### TFAutoModelForMultipleChoice | |
[[autodoc]] TFAutoModelForMultipleChoice | |
### FlaxAutoModelForMultipleChoice | |
[[autodoc]] FlaxAutoModelForMultipleChoice | |
### AutoModelForNextSentencePrediction | |
[[autodoc]] AutoModelForNextSentencePrediction | |
### TFAutoModelForNextSentencePrediction | |
[[autodoc]] TFAutoModelForNextSentencePrediction | |
### FlaxAutoModelForNextSentencePrediction | |
[[autodoc]] FlaxAutoModelForNextSentencePrediction | |
### AutoModelForTokenClassification | |
[[autodoc]] AutoModelForTokenClassification | |
### TFAutoModelForTokenClassification | |
[[autodoc]] TFAutoModelForTokenClassification | |
### FlaxAutoModelForTokenClassification | |
[[autodoc]] FlaxAutoModelForTokenClassification | |
### AutoModelForQuestionAnswering | |
[[autodoc]] AutoModelForQuestionAnswering | |
### TFAutoModelForQuestionAnswering | |
[[autodoc]] TFAutoModelForQuestionAnswering | |
### FlaxAutoModelForQuestionAnswering | |
[[autodoc]] FlaxAutoModelForQuestionAnswering | |
## Computer vision | |
The following auto classes are available for the following computer vision tasks. | |
### AutoModelForDepthEstimation | |
[[autodoc]] AutoModelForDepthEstimation | |
### AutoModelForImageClassification | |
[[autodoc]] AutoModelForImageClassification | |
### TFAutoModelForImageClassification | |
[[autodoc]] TFAutoModelForImageClassification | |
### FlaxAutoModelForImageClassification | |
[[autodoc]] FlaxAutoModelForImageClassification | |
### AutoModelForVideoClassification | |
[[autodoc]] AutoModelForVideoClassification | |
### AutoModelForMaskedImageModeling | |
[[autodoc]] AutoModelForMaskedImageModeling | |
### AutoModelForObjectDetection | |
[[autodoc]] AutoModelForObjectDetection | |
### AutoModelForImageSegmentation | |
[[autodoc]] AutoModelForImageSegmentation | |
### AutoModelForSemanticSegmentation | |
[[autodoc]] AutoModelForSemanticSegmentation | |
### TFAutoModelForSemanticSegmentation | |
[[autodoc]] TFAutoModelForSemanticSegmentation | |
### AutoModelForInstanceSegmentation | |
[[autodoc]] AutoModelForInstanceSegmentation | |
### AutoModelForUniversalSegmentation | |
[[autodoc]] AutoModelForUniversalSegmentation | |
### AutoModelForZeroShotImageClassification | |
[[autodoc]] AutoModelForZeroShotImageClassification | |
### TFAutoModelForZeroShotImageClassification | |
[[autodoc]] TFAutoModelForZeroShotImageClassification | |
### AutoModelForZeroShotObjectDetection | |
[[autodoc]] AutoModelForZeroShotObjectDetection | |
## Audio | |
The following auto classes are available for the following audio tasks. | |
### AutoModelForAudioClassification | |
[[autodoc]] AutoModelForAudioClassification | |
### AutoModelForAudioFrameClassification | |
[[autodoc]] AutoModelForAudioFrameClassification | |
### AutoModelForCTC | |
[[autodoc]] AutoModelForCTC | |
### AutoModelForSpeechSeq2Seq | |
[[autodoc]] AutoModelForSpeechSeq2Seq | |
### TFAutoModelForSpeechSeq2Seq | |
[[autodoc]] TFAutoModelForSpeechSeq2Seq | |
### FlaxAutoModelForSpeechSeq2Seq | |
[[autodoc]] FlaxAutoModelForSpeechSeq2Seq | |
### AutoModelForAudioXVector | |
[[autodoc]] AutoModelForAudioXVector | |
## Multimodal | |
The following auto classes are available for the following multimodal tasks. | |
### AutoModelForTableQuestionAnswering | |
[[autodoc]] AutoModelForTableQuestionAnswering | |
### TFAutoModelForTableQuestionAnswering | |
[[autodoc]] TFAutoModelForTableQuestionAnswering | |
### AutoModelForDocumentQuestionAnswering | |
[[autodoc]] AutoModelForDocumentQuestionAnswering | |
### TFAutoModelForDocumentQuestionAnswering | |
[[autodoc]] TFAutoModelForDocumentQuestionAnswering | |
### AutoModelForVisualQuestionAnswering | |
[[autodoc]] AutoModelForVisualQuestionAnswering | |
### AutoModelForVision2Seq | |
[[autodoc]] AutoModelForVision2Seq | |
### TFAutoModelForVision2Seq | |
[[autodoc]] TFAutoModelForVision2Seq | |
### FlaxAutoModelForVision2Seq | |
[[autodoc]] FlaxAutoModelForVision2Seq | |