Transformers documentation
Hiera
Este modelo se publicó en HF papers el 2023-06-01 y se contribuyó a Hugging Face Transformers el 2024-07-12.
Hiera
Resumen
Hiera fue propuesto en Hiera: A Hierarchical Vision Transformer without the Bells-and-Whistles por Chaitanya Ryali, Yuan-Ting Hu, Daniel Bolya, Chen Wei, Haoqi Fan, Po-Yao Huang, Vaibhav Aggarwal, Arkabandhu Chowdhury, Omid Poursaeed, Judy Hoffman, Jitendra Malik, Yanghao Li, Christoph Feichtenhofer
El artículo presenta “Hiera”, un Vision Transformer jerárquico que simplifica la arquitectura de los transformadores jerárquicos de visión modernos al eliminar componentes innecesarios sin comprometer la precisión ni la eficiencia. A diferencia de los transformadores tradicionales, que añaden componentes específicos de visión complejos para mejorar el rendimiento en la clasificación supervisada, Hiera demuestra que dichas adiciones, a menudo denominadas “bells-and-whistles”, no son esenciales para lograr una alta precisión. Al aprovechar una tarea de pretexto visual potente (MAE) para el preentrenamiento, Hiera mantiene la simplicidad y logra una precisión y velocidad superiores tanto en la inferencia como en el entrenamiento en diversas tareas de reconocimiento de imágenes y videos. El enfoque sugiere que los sesgos espaciales necesarios para las tareas de visión pueden aprenderse de manera efectiva mediante un preentrenamiento adecuado, eliminando la necesidad de una complejidad arquitectónica adicional.
El resumen del artículo es el siguiente:
Los transformadores jerárquicos de visión modernos han añadido varios componentes específicos de visión en la búsqueda de un rendimiento de clasificación supervisada. Si bien estos componentes conducen a precisiones efectivas y recuentos de FLOP atractivos, la complejidad añadida hace que estos transformadores sean en realidad más lentos que sus equivalentes ViT básicos. En este artículo, argumentamos que este volumen adicional es innecesario. Al realizar el preentrenamiento con una tarea previa visual fuerte (MAE), podemos eliminar todos los adornos de un transformador de visión multinivel de última generación sin perder precisión. En el proceso, creamos Hiera, un transformador de visión jerárquico extremadamente simple que es más preciso que los modelos anteriores y, al mismo tiempo, significativamente más rápido tanto en la inferencia como durante el entrenamiento. Evaluamos Hiera en una variedad de tareas para el reconocimiento de imágenes y videos. Nuestro código y modelos están disponibles en https://github.com/facebookresearch/hiera.
Hiera architecture. Taken from the original paper. Este modelo fue una contribución conjunta de EduardoPacheco y namangarg110. El código original se puede encontrar [aquí] (https://github.com/facebookresearch/hiera).
Recursos
Una lista de recursos oficiales de Hugging Face y de la comunidad (indicados con 🌎) para ayudarte a empezar con Hiera. Si te interesa enviar un recurso para que se incluya aquí, no dudes en abrir una Pull Request y la revisaremos. Lo ideal es que el recurso demuestre algo nuevo en lugar de duplicar un recurso existente.
- HieraForImageClassification es compatible con este notebook.
- Véase también: Guía de la tarea de clasificación de imágenes
HieraConfig
clase transformers.HieraConfig
< source >( transformers_version: str | None = Nonearchitectures: list[str] | None = Noneoutput_hidden_states: bool | None = Falsereturn_dict: bool | None = Truedtype: str | torch.dtype | None = Nonechunk_size_feed_forward: int = 0is_encoder_decoder: bool = Falseid2label: dict[int, str] | dict[str, str] | None = Nonelabel2id: dict[str, int] | dict[str, str] | None = Noneproblem_type: Literal['regression', 'single_label_classification', 'multi_label_classification'] | None = Noneembed_dim: int = 96image_size: list[int] | tuple[int, ...] = (224, 224)patch_size: list[int] | tuple[int, ...] = (7, 7)patch_stride: list[int] | tuple[int, ...] = (4, 4)patch_padding: list[int] | tuple[int, ...] = (3, 3)mlp_ratio: float = 4.0depths: list[int] | tuple[int, ...] = (2, 3, 16, 3)num_heads: list[int] | tuple[int, ...] = (1, 2, 4, 8)embed_dim_multiplier: float | int = 2.0num_query_pool: int = 3query_stride: list[int] | tuple[int, ...] = (2, 2)masked_unit_size: list[int] | tuple[int, ...] = (8, 8)masked_unit_attention: list[bool] | tuple[bool, ...] = (True, True, False, False)drop_path_rate: float | int = 0.0num_channels: int = 3hidden_act: str = 'gelu'initializer_range: float = 0.02layer_norm_init: float = 1.0layer_norm_eps: float = 1e-06decoder_hidden_size: int | None = Nonedecoder_depth: int | None = Nonedecoder_num_heads: int | None = Nonenormalize_pixel_loss: bool | None = Truemask_ratio: float = 0.6_out_features: list[str] | None = None_out_indices: list[int] | None = None )
Parámetros
- embed_dim (
int, opcional, valor predeterminado96) — Dimensionalidad de las incrustaciones y los estados ocultos. - image_size (
Union[list[int], tuple[int, ...]], opcional, valor predeterminado(224, 224)) — El tamaño (resolución) de cada imagen. - patch_size (
Union[list[int], tuple[int, ...]], opcional, valor predeterminado(7, 7)) — El tamaño (resolución) de cada parche. - patch_stride (
list(int), opcional, por defecto[4, 4]) — El paso del parche. - patch_padding (
list(int), opcional, valor predeterminado[3, 3]) — El relleno del parche. - mlp_ratio (
float, opcional, valor predeterminado4.0) — Relación entre la dimensión oculta del MLP y la dimensión de la incrustación. - depths (
Union[list[int], tuple[int, ...]], opcional, valor predeterminado(2, 3, 16, 3)) — Profundidad de cada capa en el Transformer. - num_heads (
list(int), opcional, valor predeterminado[1, 2, 4, 8]) — Número de cabezas de atención en cada capa del codificador Transformer. - embed_dim_multiplier (
float, opcional, valor predeterminado 2.0) — El multiplicador de la dimensionalidad del incrustado de parches en cada capa del codificador Transformer. - num_query_pool (
int, opcional, valor predeterminado 3) — El número de etapas de la piscina de consultas. - query_stride (
list(int), opcional, valor predeterminado[2, 2]) — El paso del pool de consulta. - masked_unit_size (
list(int), opcional, valor predeterminado[8, 8]) — El tamaño de la unidad enmascarada. - masked_unit_attention (
list(bool), opcional, valor predeterminado[True, True, False, False]) — Si se debe usar atención unitaria enmascarada en cada capa del codificador Transformer. - drop_path_rate (
Union[float, int], opcional, valor predeterminado0.0) — Tasa de drop path para la fusión de parches. - num_channels (
int, opcional, valor predeterminado3) — El número de canales de entrada. - hidden_act (
str, opcional, valor predeterminadogelu) — La función de activación no lineal (función o cadena) en el decodificador. Por ejemplo,"gelu","relu","silu", etc. - initializer_range (
float, opcional, valor predeterminado0.02) — La desviación estándar del truncated_normal_initializer para inicializar todas las matrices de pesos. - layer_norm_init (
float, opcional, valor predeterminado 1.0) — El valor inicial del peso para las capas de normalización por capa. - layer_norm_eps (
float, opcional, valor predeterminado1e-06) — La epsilon utilizada por las capas de normalización de capa. - decoder_hidden_size (
int, opcional) — Dimensión de las representaciones ocultas. - decoder_depth (
int, opcional) — Profundidad del decodificador para el preentrenamiento de MAE. - decoder_num_heads (
int, opcional) — Número de cabezas de atención para cada capa de atención en el decodificador del Transformer. - normalize_pixel_loss (
bool, opcional, valor predeterminadoTrue) — Si se normaliza la pérdida de píxeles por el número de píxeles. - mask_ratio (
float, opcional, valor predeterminado 0.6) — La proporción de tokens enmascarados en la entrada.
Esta es la clase de configuración para almacenar la configuración de un HieraModel. Se utiliza para instanciar un modelo Hiera según los argumentos especificados, definiendo la arquitectura del modelo. Instanciar una configuración con los valores predeterminados producirá una configuración similar a la de facebook/hiera-base-224
Los objetos de configuración heredan de PreTrainedConfig y se pueden usar para controlar las salidas del modelo. Lea la documentación de PreTrainedConfig para obtener más información.
Ejemplo:
>>> from transformers import HieraConfig, HieraModel
>>> # Initializing a Hiera hiera-base-patch16-224 style configuration
>>> configuration = HieraConfig()
>>> # Initializing a model (with random weights) from the hiera-base-patch16-224 style configuration
>>> model = HieraModel(configuration)
>>> # Accessing the model configuration
>>> configuration = model.configHieraModel
clase transformers.HieraModel
< source >( config: HieraConfigadd_pooling_layer: bool = Trueis_mae: bool = False )
Parámetros
- config (HieraConfig) — Clase de configuración del modelo con todos los parámetros del modelo. Inicializar con un archivo de configuración no carga los pesos asociados con el modelo, solo la configuración. Consulte el método from_pretrained() para cargar los pesos del modelo.
- add_pooling_layer (
bool, opcional, valor predeterminadoTrue) — Si se aplica o no una capa de pooling. - is_mae (
bool, opcional, valor predeterminadoFalse) — Indica si se debe ejecutar el modelo en modo MAE.
El modelo Hiera básico que emite estados ocultos sin ningún cabezal específico en la parte superior.
Este modelo hereda de PreTrainedModel. Consulta la documentación de la clase superior para los métodos genéricos que la biblioteca implementa para todos sus modelos (como la descarga o el guardado, el redimensionamiento de las incrustaciones de entrada, la poda de cabezas, etc.).
Este modelo también es una subclase de torch.nn.Module de PyTorch. Úsalo como un módulo de PyTorch regular y consulta la documentación de PyTorch para todo lo relacionado con el uso y el comportamiento generales.
forward
< source >( pixel_values: typing.Optional[torch.Tensor] = Nonenoise: typing.Optional[torch.Tensor] = Noneoutput_attentions: bool | None = Noneoutput_hidden_states: bool | None = Noneinterpolate_pos_encoding: bool | None = Nonereturn_dict: bool | None = None**kwargs ) → BaseModelOutputWithPooling or tuple(torch.Tensor)
Parámetros
- pixel_values (
torch.Tensorde forma(batch_size, num_channels, image_size, image_size), opcional) — Los tensores correspondientes a las imágenes de entrada. Los valores de píxeles se pueden obtener utilizando BitImageProcessor. Consulte BitImageProcessor.call() para más detalles (processor_classutiliza BitImageProcessor para procesar las imágenes). - noise (
torch.Tensorde forma(batch_size, num_mask_units), opcional) — Se utiliza principalmente con fines de prueba para controlar la aleatoriedad y mantener la reproducibilidad - output_attentions (
bool, opcional) — Indica si se deben devolver los tensores de atención de todas las capas de atención. Consulteattentionsen los tensores devueltos para obtener más detalles. - output_hidden_states (
bool, opcional) — Indica si se deben devolver los estados ocultos de todas las capas. Consultehidden_statesen los tensores devueltos para obtener más detalles. - interpolate_pos_encoding (
bool, opcional) — Si se debe interpolar las codificaciones de posición preentrenadas. - return_dict (
bool, opcional) — Indica si se debe devolver un ModelOutput en lugar de una tupla simple.
Devuelve
BaseModelOutputWithPooling o tuple(torch.Tensor)
Un BaseModelOutputWithPooling o una tupla de
torch.Tensor (si se pasa return_dict=False o cuando config.return_dict=False) que comprende varios
elementos según la configuración (HieraConfig) y las entradas.
El método forward de HieraModel reemplaza el método especial __call__.
Aunque la receta para la pasada hacia adelante debe definirse dentro de esta función, se debe llamar a la instancia de
Moduledespués en lugar de a esta, ya que la primera se encarga de ejecutar los pasos de pre y postprocesamiento, mientras que la segunda los ignora silenciosamente.
last_hidden_state (
torch.Tensorde forma(batch_size, sequence_length, hidden_size)) — Secuencia de estados ocultos en la salida de la última capa del modelo.pooler_output (
torch.Tensorde forma(batch_size, hidden_size)) — Estado oculto de la última capa del primer token de la secuencia (token de clasificación) después de un procesamiento adicional a través de las capas utilizadas para la tarea de preentrenamiento auxiliar. Por ejemplo, para la familia de modelos BERT, esto devuelve el token de clasificación después de procesarlo a través de una capa lineal y una función de activación tanh. Los pesos de la capa lineal se entrenan a partir del objetivo de predicción de la siguiente oración (clasificación) durante el preentrenamiento.hidden_states (
tuple(torch.Tensor), opcional, devuelto cuando se pasaoutput_hidden_states=Trueo cuandoconfig.output_hidden_states=True) — Tupla detorch.Tensor(una para la salida de las incrustaciones, si el modelo tiene una capa de incrustaciones, + una para la salida de cada capa) de forma(batch_size, sequence_length, hidden_size).Estados ocultos del modelo en la salida de cada capa más las salidas opcionales de la incrustación inicial.
attentions (
tuple(torch.Tensor), opcional, se devuelve cuando se pasaoutput_attentions=Trueo cuandoconfig.output_attentions=True) — Tupla detorch.Tensor(una por cada capa) de forma(batch_size, num_heads, sequence_length, sequence_length).Pesos de atención tras el softmax de atención, utilizados para calcular la media ponderada en las cabezas de autoatención.
HieraForPreTraining
clase transformers.HieraForPreTraining
< source >( config: HieraConfig )
Parámetros
- config (HieraConfig) — Clase de configuración del modelo con todos los parámetros del modelo. Inicializar con un archivo de configuración no carga los pesos asociados con el modelo, solo la configuración. Consulte el método from_pretrained() para cargar los pesos del modelo.
El transformador del modelo Hiera con el decodificador en la parte superior para el preentrenamiento auto-supervisado.
Este modelo hereda de PreTrainedModel. Consulta la documentación de la clase superior para los métodos genéricos que la biblioteca implementa para todos sus modelos (como la descarga o el guardado, el redimensionamiento de las incrustaciones de entrada, la poda de cabezas, etc.).
Este modelo también es una subclase de torch.nn.Module de PyTorch. Úsalo como un módulo de PyTorch regular y consulta la documentación de PyTorch para todo lo relacionado con el uso y el comportamiento generales.
forward
< source >( pixel_values: typing.Optional[torch.Tensor] = Nonenoise: typing.Optional[torch.Tensor] = Noneoutput_attentions: bool | None = Noneoutput_hidden_states: bool | None = Noneinterpolate_pos_encoding: bool | None = Nonereturn_dict: bool | None = None**kwargs ) → HieraForPreTrainingOutput or tuple(torch.Tensor)
Parámetros
- pixel_values (
torch.Tensorde forma(batch_size, num_channels, image_size, image_size), opcional) — Los tensores correspondientes a las imágenes de entrada. Los valores de píxeles se pueden obtener utilizando BitImageProcessor. Consulte BitImageProcessor.call() para más detalles (processor_classutiliza BitImageProcessor para procesar las imágenes). - noise (
torch.Tensorde forma(batch_size, num_mask_units), opcional) — Se utiliza principalmente con fines de prueba para controlar la aleatoriedad y mantener la reproducibilidad - output_attentions (
bool, opcional) — Indica si se deben devolver los tensores de atención de todas las capas de atención. Consulteattentionsen los tensores devueltos para obtener más detalles. - output_hidden_states (
bool, opcional) — Indica si se deben devolver los estados ocultos de todas las capas. Consultehidden_statesen los tensores devueltos para obtener más detalles. - interpolate_pos_encoding (
bool, opcional) — Si se debe interpolar las codificaciones de posición preentrenadas. - return_dict (
bool, opcional) — Indica si se debe devolver un ModelOutput en lugar de una tupla simple.
Devuelve
HieraForPreTrainingOutput o tuple(torch.Tensor)
Un HieraForPreTrainingOutput o una tupla de
torch.Tensor (si se pasa return_dict=False o cuando config.return_dict=False) que comprende varios
elementos según la configuración (HieraConfig) y las entradas.
El método forward de HieraForPreTraining sobrescribe el método especial __call__.
Aunque la receta para la pasada hacia adelante debe definirse dentro de esta función, se debe llamar a la instancia de
Moduledespués en lugar de a esta, ya que la primera se encarga de ejecutar los pasos de pre y postprocesamiento, mientras que la segunda los ignora silenciosamente.
loss (
torch.Tensorde forma(1,)) — Pérdida de reconstrucción de píxeles.logits (
torch.Tensorde forma(batch_size, sequence_length, patch_size ** 2 * num_channels)) — Logits de reconstrucción de píxeles.bool_masked_pos (
torch.BoolTensorde forma(batch_size, sequence_length)) — Tensor que indica qué parches están enmascarados (0) y cuáles no (1).ids_restore (
torch.LongTensorde forma(batch_size, sequence_length)) — Tensor que contiene el índice original de los parches enmascarados (barajados).hidden_states (
tuple[torch.Tensor], opcional, se devuelve cuando se pasaoutput_hidden_states=Trueo cuandoconfig.output_hidden_states=True) — Tupla detorch.Tensor(una para la salida de las incrustaciones, si el modelo tiene una capa de incrustaciones, + una para la salida de cada capa) de forma(batch_size, sequence_length, hidden_size).Estados ocultos del modelo en la salida de cada capa más las salidas opcionales de la incrustación inicial.
attentions (
tuple[torch.Tensor], opcional, se devuelve cuando se pasaoutput_attentions=Trueo cuandoconfig.output_attentions=True) — Tupla detorch.Tensor(una por cada capa) de forma(batch_size, num_heads, sequence_length, sequence_length).Pesos de atención tras el softmax de atención, utilizados para calcular la media ponderada en las cabezas de autoatención.
reshaped_hidden_states (
tuple(torch.Tensor), opcional, se devuelve cuando se pasaoutput_hidden_states=Trueo cuandoconfig.output_hidden_states=True) — Tupla detorch.Tensor(una para la salida de los embeddings + una para la salida de cada capa) de forma(batch_size, height, width, hidden_size). Estados ocultos del modelo en la salida de cada capa más las salidas de los embeddings iniciales, reorganizados para incluir las dimensiones espaciales.
Ejemplos:
>>> from transformers import AutoImageProcessor, HieraForPreTraining
>>> import torch
>>> from PIL import Image
>>> from huggingface_hub.utils import httpx
>>> from io import BytesIO
>>> url = "http://images.cocodataset.org/val2017/000000039769.jpg"
>>> with httpx.stream("GET", url) as response:
... image = Image.open(BytesIO(response.read()))
>>> image_processor = AutoImageProcessor.from_pretrained("facebook/hiera-tiny-224-mae-hf")
>>> model = HieraForPreTraining.from_pretrained("facebook/hiera-tiny-224-mae-hf")
>>> inputs = image_processor(images=image, return_tensors="pt")
>>> outputs = model(**inputs)
>>> logits = outputs.logits
>>> loss = outputs.loss
>>> print(list(logits.shape))
[1, 196, 768]HieraForImageClassification
clase transformers.HieraForImageClassification
< source >( config: HieraConfig )
Parámetros
- config (HieraConfig) — Clase de configuración del modelo con todos los parámetros del modelo. Inicializar con un archivo de configuración no carga los pesos asociados con el modelo, solo la configuración. Consulte el método from_pretrained() para cargar los pesos del modelo.
Transformador del modelo Hiera con una cabeza de clasificación de imágenes en la parte superior (una capa lineal sobre el estado oculto final con promediado) p. ej. para ImageNet.
Tenga en cuenta que es posible ajustar Hiera con imágenes de mayor resolución que las con las que se entrenó, estableciendo
interpolate_pos_encodingenTrueen el forward del modelo. Esto interpolará los embeddings de posición preentrenados a la mayor resolución.
Este modelo hereda de PreTrainedModel. Consulta la documentación de la clase superior para los métodos genéricos que la biblioteca implementa para todos sus modelos (como la descarga o el guardado, el redimensionamiento de las incrustaciones de entrada, la poda de cabezas, etc.).
Este modelo también es una subclase de torch.nn.Module de PyTorch. Úsalo como un módulo de PyTorch regular y consulta la documentación de PyTorch para todo lo relacionado con el uso y el comportamiento generales.
forward
< source >( pixel_valueslabels: typing.Optional[torch.Tensor] = Noneoutput_attentions: bool | None = Noneoutput_hidden_states: bool | None = Noneinterpolate_pos_encoding: bool | None = Nonereturn_dict: bool | None = None**kwargs ) → HieraForImageClassificationOutput or tuple(torch.Tensor)
Parámetros
- pixel_values (`
of shape(batch_size, num_channels, image_size, image_size)) -- The tensors corresponding to the input images. Pixel values can be obtained using [BitImageProcessor](/docs/transformers/main/en/model_doc/bit#transformers.BitImageProcessor). See [BitImageProcessor.__call__()](/docs/transformers/main/en/model_doc/molmo2#transformers.Molmo2ImageProcessor.__call__) for details (processor_class` uses BitImageProcessor for processing images). - labels (
torch.LongTensorde forma(batch_size,), opcional) — Etiquetas para calcular la pérdida de clasificación/regresión de imágenes. Los índices deben estar en[0, ..., config.num_labels - 1]. Siconfig.num_labels == 1se calcula una pérdida de regresión (pérdida de error cuadrático medio), siconfig.num_labels > 1se calcula una pérdida de clasificación (entropía cruzada). - output_attentions (
bool, opcional) — Indica si se deben devolver los tensores de atención de todas las capas de atención. Consulteattentionsen los tensores devueltos para obtener más detalles. - output_hidden_states (
bool, opcional) — Indica si se deben devolver los estados ocultos de todas las capas. Consultehidden_statesen los tensores devueltos para obtener más detalles. - interpolate_pos_encoding (
bool, opcional) — Si se debe interpolar las codificaciones de posición preentrenadas. - return_dict (
bool, opcional) — Indica si se debe devolver un ModelOutput en lugar de una tupla simple.
Devuelve
HieraForImageClassificationOutput o tuple(torch.Tensor)
Un HieraForImageClassificationOutput o una tupla de
torch.Tensor (si se pasa return_dict=False o cuando config.return_dict=False) que comprende varios
elementos según la configuración (HieraConfig) y las entradas.
El método forward de HieraForImageClassification sobrescribe el método especial __call__.
Aunque la receta para la pasada hacia adelante debe definirse dentro de esta función, se debe llamar a la instancia de
Moduledespués en lugar de a esta, ya que la primera se encarga de ejecutar los pasos de pre y postprocesamiento, mientras que la segunda los ignora silenciosamente.
loss (
torch.Tensorde forma(1,), opcional, se devuelve cuando se proporcionalabels) — Pérdida de clasificación (o de regresión si config.num_labels==1).logits (
torch.Tensorde forma(batch_size, config.num_labels)) — Puntuaciones de clasificación (o de regresión si config.num_labels==1) (antes de SoftMax).hidden_states (
tuple(torch.Tensor), opcional, devuelto cuando se pasaoutput_hidden_states=Trueo cuandoconfig.output_hidden_states=True) — Tupla detorch.Tensor(una para la salida de las incrustaciones, si el modelo tiene una capa de incrustación, + una para la salida de cada etapa) de forma(batch_size, sequence_length, hidden_size). Estados ocultos (también llamados mapas de características) del modelo en la salida de cada etapa.attentions (
tuple(torch.Tensor), opcional, se devuelve cuando se pasaoutput_attentions=Trueo cuandoconfig.output_attentions=True) — Tupla detorch.Tensor(una por cada capa) de forma(batch_size, num_heads, patch_size, sequence_length).Pesos de atención tras el softmax de atención, utilizados para calcular la media ponderada en las cabezas de autoatención.
reshaped_hidden_states (
tuple(torch.Tensor),optional) — Tupla detorch.Tensor(una para la salida de las incrustaciones + una para la salida de cada etapa) de forma(batch_size, height, width, hidden_size). Estos son los estados ocultos del modelo redimensionados y reorganizados.Estados ocultos del modelo en la salida de cada capa, más las salidas de la incrustación inicial reconfiguradas para incluir las dimensiones espaciales.
Ejemplo:
>>> from transformers import AutoImageProcessor, HieraForImageClassification
>>> import torch
>>> from datasets import load_dataset
>>> dataset = load_dataset("huggingface/cats-image")
>>> image = dataset["test"]["image"][0]
>>> image_processor = AutoImageProcessor.from_pretrained("facebook/hiera-base-224")
>>> model = HieraForImageClassification.from_pretrained("facebook/hiera-base-224")
>>> inputs = image_processor(image, return_tensors="pt")
>>> with torch.no_grad():
... logits = model(**inputs).logits
>>> # model predicts one of the 1000 ImageNet classes
>>> predicted_label = logits.argmax(-1).item()
>>> print(model.config.id2label[predicted_label])
...