Transformers documentation

HGNet-V2

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

and get access to the augmented documentation experience

to get started

Este modelo fue aportado a Hugging Face Transformers el 2025-04-29.

HGNet-V2

HGNetV2 es un backbone de red neuronal convolucional (CNN) de próxima generación diseñado para lograr el mejor equilibrio entre precisión y latencia en GPUs de NVIDIA. Basándose en el HGNet original, HGNetV2 ofrece alta precisión con velocidades de inferencia rápidas y rinde de forma destacada en tareas como clasificación de imágenes, detección de objetos y segmentación, lo que lo convierte en una opción práctica para aplicaciones de visión por computadora basadas en GPU.

Puedes encontrar todos los modelos originales de HGNet V2 bajo la organización USTC.

Este modelo fue aportado por VladOS95-cyber. Haz clic en los modelos HGNet V2 de la barra lateral derecha para ver más ejemplos de cómo aplicar HGNet V2 a diferentes tareas de visión por computadora.

El siguiente ejemplo demuestra cómo clasificar una imagen con Pipeline o la clase AutoModel.

Pipeline
AutoModel
from transformers import pipeline


pipeline = pipeline(
    task="image-classification",
    model="ustc-community/hgnet-v2",
    device=0
)
pipeline("http://images.cocodataset.org/val2017/000000039769.jpg")

HGNetV2Config

clase transformers.HGNetV2Config

< >

( 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 = Nonenum_channels: int = 3embedding_size: int = 64depths: list[int] | tuple[int, ...] = (3, 4, 6, 3)hidden_sizes: list[int] | tuple[int, ...] = (256, 512, 1024, 2048)hidden_act: str = 'relu'_out_features: list[str] | None = None_out_indices: list[int] | None = Nonestem_channels: list[int] | tuple[int, ...] = (3, 32, 48)stem_strides: Sequence = (2, 1, 1, 2, 1)stage_in_channels: list[int] | tuple[int, ...] = (48, 128, 512, 1024)stage_mid_channels: list[int] | tuple[int, ...] = (48, 96, 192, 384)stage_out_channels: list[int] | tuple[int, ...] = (128, 512, 1024, 2048)stage_num_blocks: list[int] | tuple[int, ...] = (1, 1, 3, 1)stage_downsample: list[bool] | tuple[bool, ...] = (False, True, True, True)stage_downsample_strides: Sequence = (2, 2, 2, 2)stage_light_block: list[bool] | tuple[bool, ...] = (False, False, True, True)stage_kernel_size: list[int] | tuple[int, ...] = (3, 3, 5, 5)stage_numb_of_layers: list[int] | tuple[int, ...] = (6, 6, 6, 6)use_learnable_affine_block: bool = Falseinitializer_range: float = 0.02 )

Parámetros

  • num_channels (int, opcional, valor predeterminado 3) — El número de canales de entrada.
  • embedding_size (int, opcional, valor predeterminado 64) — Dimensionalidad de los embeddings y los estados ocultos.
  • depths (Union[list[int], tuple[int, ...]], opcional, valor predeterminado (3, 4, 6, 3)) — Profundidad de cada capa en el Transformer.
  • hidden_sizes (Union[list[int], tuple[int, ...]], opcional, valor predeterminado (256, 512, 1024, 2048)) — Dimensionalidad (tamaño oculto) en cada etapa del modelo.
  • hidden_act (str, opcional, valor predeterminado relu) — La función de activación no lineal (función o cadena) en el decodificador. Por ejemplo, "gelu", "relu", "silu", etc.
  • stem_channels (list[int], opcional, por defecto [3, 32, 48]) — Dimensiones de los canales para las capas del tallo:
    • El primer número (3) son los canales de la imagen de entrada
    • El segundo número (32) son los canales intermedios del tallo
    • El tercer número (48) son los canales del tallo de salida
  • stem_strides (Sequence[int | list[int] | tuple[int, ...]], opcional, valor predeterminado (2, 1, 1, 2, 1)) — Patrones de paso para las capas del tallo.
  • stage_in_channels (list[int], opcional, valor predeterminado [48, 128, 512, 1024]) — Dimensiones de los canales de entrada para cada etapa del backbone. Esto define cuántos canales tendrá la entrada de cada etapa.
  • stage_mid_channels (list[int], opcional, valor predeterminado [48, 96, 192, 384]) — Dimensiones de los canales intermedios para cada etapa del backbone. Esto define el número de canales utilizados en las capas intermedias de cada etapa.
  • stage_out_channels (list[int], opcional, valor predeterminado [128, 512, 1024, 2048]) — Dimensiones de los canales de salida para cada etapa del backbone. Esto define cuántos canales tendrá la salida de cada etapa.
  • stage_num_blocks (list[int], opcional, valor predeterminado [1, 1, 3, 1]) — Número de bloques que se usarán en cada etapa del backbone. Esto controla la profundidad de cada etapa especificando cuántos bloques convolucionales apilar.
  • stage_downsample (list[bool], opcional, valor predeterminado [False, True, True, True]) — Indica si se debe reducir la resolución de los mapas de características en cada etapa. Si es True, las dimensiones espaciales de los mapas de características se reducirán.
  • stage_downsample_strides (Sequence[int | list[int] | tuple[int, ...]], opcional, valor predeterminado (2, 2, 2, 2)) — Patrones de paso para cada capa de etapa.
  • stage_light_block (list[bool], opcional, valor predeterminado [False, False, True, True]) — Indica si se deben usar bloques ligeros en cada etapa. Los bloques ligeros son una variante de los bloques convolucionales que pueden tener menos parámetros.
  • stage_kernel_size (list[int], opcional, valor predeterminado [3, 3, 5, 5]) — Tamaños de kernel para las capas convolucionales de cada etapa.
  • stage_numb_of_layers (list[int], opcional, valor predeterminado [6, 6, 6, 6]) — Número de capas que se usarán en cada bloque de la etapa.
  • use_learnable_affine_block (bool, opcional, valor predeterminado False) — Si se deben usar Learnable Affine Blocks (LAB) en la red. LAB añade parámetros de escala y sesgo aprendibles después de ciertas operaciones.
  • initializer_range (float, opcional, valor predeterminado 0.02) — La desviación estándar del truncated_normal_initializer para inicializar todas las matrices de pesos.

Esta es la clase de configuración para almacenar la configuración de un HGNetV2Backbone. Se utiliza para instanciar un modelo Hgnet V2 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 ustc-community/dfine_x_coco

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.

HGNetV2Backbone

clase transformers.HGNetV2Backbone

< >

( config: HGNetV2Config )

forward

< >

( pixel_values: Tensoroutput_hidden_states: bool | None = Nonereturn_dict: bool | None = None**kwargs ) → BackboneOutput or tuple(torch.Tensor)

Parámetros

  • pixel_values (torch.Tensor de forma (batch_size, num_channels, image_size, image_size)) — Los tensores correspondientes a las imágenes de entrada. Los valores de píxeles se pueden obtener utilizando image_processor_class. Consulte image_processor_class.__call__ para más detalles (processor_class utiliza image_processor_class para procesar las imágenes).
  • 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.
  • return_dict (bool, opcional) — Indica si se debe devolver un ModelOutput en lugar de una tupla simple.

Devuelve

BackboneOutput o tuple(torch.Tensor)

Un BackboneOutput 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 (HGNetV2Config) y las entradas.

El método forward de HGNetV2Backbone 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.

  • feature_maps (tuple(torch.Tensor) de forma (batch_size, num_channels, height, width)) — Mapas de características de las etapas.

  • 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 los embeddings + una para la salida de cada capa) de forma (batch_size, sequence_length, hidden_size) o (batch_size, num_channels, height, width), según el backbone.

    Estados ocultos del modelo en la salida de cada etapa más las salidas 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). Solo aplicable si el backbone usa atención.

    Pesos de atención tras el softmax de atención, utilizados para calcular la media ponderada en las cabezas de autoatención.

Ejemplos:

>>> from transformers import HGNetV2Config, HGNetV2Backbone
>>> import torch

>>> config = HGNetV2Config()
>>> model = HGNetV2Backbone(config)

>>> pixel_values = torch.randn(1, 3, 224, 224)

>>> with torch.no_grad():
...     outputs = model(pixel_values)

>>> feature_maps = outputs.feature_maps
>>> list(feature_maps[-1].shape)
[1, 2048, 7, 7]

HGNetV2ForImageClassification

clase transformers.HGNetV2ForImageClassification

< >

( config: HGNetV2Config )

Parámetros

  • config (HGNetV2Config) — 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.

Modelo HGNetV2 con una cabeza de clasificación de imágenes en la parte superior (una capa lineal sobre las características agrupadas), por ejemplo, para ImageNet.

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] = Nonelabels: typing.Optional[torch.LongTensor] = Noneoutput_hidden_states: bool | None = Nonereturn_dict: bool | None = None**kwargs ) → ImageClassifierOutputWithNoAttention 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 image_processor_class. Consulte image_processor_class.__call__ para más detalles (processor_class utiliza image_processor_class para procesar las imágenes).
  • 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_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.
  • return_dict (bool, opcional) — Indica si se debe devolver un ModelOutput en lugar de una tupla simple.

Devuelve

ImageClassifierOutputWithNoAttention o tuple(torch.Tensor)

Un ImageClassifierOutputWithNoAttention 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 (HGNetV2Config) y las entradas.

El método forward de HGNetV2ForImageClassification 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.

  • 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, num_channels, height, width). Estados ocultos (también llamados mapas de características) del modelo en la salida de cada etapa.

Ejemplos:

>>> import torch
>>> from huggingface_hub.utils import httpx
>>> from io import BytesIO
>>> from transformers import HGNetV2ForImageClassification, AutoImageProcessor
>>> from PIL import Image

>>> url = "http://images.cocodataset.org/val2017/000000039769.jpg"
>>> with httpx.stream("GET", url) as response:
...     image = Image.open(BytesIO(response.read()))

>>> model = HGNetV2ForImageClassification.from_pretrained("ustc-community/hgnet-v2")
>>> processor = AutoImageProcessor.from_pretrained("ustc-community/hgnet-v2")

>>> inputs = processor(images=image, return_tensors="pt")
>>> with torch.no_grad():
...     outputs = model(**inputs)
>>> outputs.logits.shape
torch.Size([1, 2])
Update on GitHub