Transformers documentation

Hiera

You are viewing main version, which requires installation from source. If you'd like regular pip install, checkout the latest stable version (v5.22.2).
Hugging Face's logo
Join the Hugging Face community

and get access to the augmented documentation experience

to get started

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.

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

Image Classification

HieraConfig

clase transformers.HieraConfig

< >

( 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 predeterminado 96) — 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 predeterminado 4.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 predeterminado 0.0) — Tasa de drop path para la fusión de parches.
  • num_channels (int, opcional, valor predeterminado 3) — El número de canales de entrada.
  • hidden_act (str, opcional, valor predeterminado gelu) — 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 predeterminado 0.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 predeterminado 1e-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 predeterminado True) — 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.config

HieraModel

clase transformers.HieraModel

< >

( 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 predeterminado True) — Si se aplica o no una capa de pooling.
  • is_mae (bool, opcional, valor predeterminado False) — 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

< >

( 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.Tensor de 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_class utiliza BitImageProcessor para procesar las imágenes).
  • noise (torch.Tensor de 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. Consulte attentions en 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. Consulte hidden_states en 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 Module despué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.Tensor de forma (batch_size, sequence_length, hidden_size)) — Secuencia de estados ocultos en la salida de la última capa del modelo.

  • pooler_output (torch.Tensor de 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 pasa output_hidden_states=True o cuando config.output_hidden_states=True) — Tupla de torch.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 pasa output_attentions=True o cuando config.output_attentions=True) — Tupla de torch.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.

Ejemplo:

HieraForPreTraining

clase transformers.HieraForPreTraining

< >

( 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

< >

( 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.Tensor de 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_class utiliza BitImageProcessor para procesar las imágenes).
  • noise (torch.Tensor de 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. Consulte attentions en 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. Consulte hidden_states en 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 Module despué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.Tensor de forma (1,)) — Pérdida de reconstrucción de píxeles.

  • logits (torch.Tensor de forma (batch_size, sequence_length, patch_size ** 2 * num_channels)) — Logits de reconstrucción de píxeles.

  • bool_masked_pos (torch.BoolTensor de forma (batch_size, sequence_length)) — Tensor que indica qué parches están enmascarados (0) y cuáles no (1).

  • ids_restore (torch.LongTensor de 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 pasa output_hidden_states=True o cuando config.output_hidden_states=True) — Tupla de torch.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 pasa output_attentions=True o cuando config.output_attentions=True) — Tupla de torch.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 pasa output_hidden_states=True o cuando config.output_hidden_states=True) — Tupla de torch.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

< >

( 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_encoding en True en 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

< >

( 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.LongTensor de 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]. Si config.num_labels == 1 se calcula una pérdida de regresión (pérdida de error cuadrático medio), si config.num_labels > 1 se 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. Consulte attentions en 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. Consulte hidden_states en 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 Module despué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.Tensor de forma (1,), opcional, se devuelve cuando se proporciona labels) — Pérdida de clasificación (o de regresión si config.num_labels==1).

  • logits (torch.Tensor de 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 pasa output_hidden_states=True o cuando config.output_hidden_states=True) — Tupla de torch.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 pasa output_attentions=True o cuando config.output_attentions=True) — Tupla de torch.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 de torch.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])
...
Update on GitHub