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

Эта модель была добавлена в Hugging Face Transformers 29.04.2025.

HGNet-V2

HGNetV2 — это convolutional neural network (CNN) backbone нового поколения, созданный для оптимального баланса между точностью и задержкой на GPU NVIDIA. Развивая идеи оригинального HGNet, HGNetV2 обеспечивает высокую точность при быстром выводе и демонстрирует отличные результаты в задачах классификации изображений, обнаружения объектов и сегментации, что делает его практичным выбором для приложений компьютерного зрения на базе GPU.

Все исходные модели HGNet V2 можно найти в организации USTC.

Эта модель была предоставлена пользователем VladOS95-cyber. Щёлкните по моделям HGNet V2 в боковой панели справа, чтобы увидеть больше примеров применения HGNet V2 к различным задачам компьютерного зрения.

Пример ниже демонстрирует, как классифицировать изображение с помощью Pipeline или класса AutoModel.

Пайплайн
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

класс 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 )

Параметры

  • num_channels (int, необязательный, по умолчанию 3) — Количество входных каналов.
  • embedding_size (int, необязательный, по умолчанию 64) — Размерность эмбеддингов и скрытых состояний.
  • depths (Union[list[int], tuple[int, ...]], необязательный, по умолчанию (3, 4, 6, 3)) — Глубина каждого слоя в Transformer.
  • hidden_sizes (Union[list[int], tuple[int, ...]], необязательный, по умолчанию (256, 512, 1024, 2048)) — Размерность (скрытый размер) на каждом этапе модели.
  • hidden_act (str, необязательный, по умолчанию relu) — Нелинейная функция активации (функция или строка) в декодере. Например, "gelu", "relu", "silu" и т. д.
  • stem_channels (list[int], необязательный, по умолчанию [3, 32, 48]) — Размерность каналов для stem-слоёв:
    • Первое число (3) — это количество каналов входного изображения
    • Второе число (32) — это количество промежуточных каналов стебля
    • Третье число (48) — это количество каналов выходного стебля
  • stem_strides (Sequence[int | list[int] | tuple[int, ...]], необязательный, по умолчанию (2, 1, 1, 2, 1)) — Шаги (strides) для слоёв stem.
  • stage_in_channels (list[int], необязательный, по умолчанию [48, 128, 512, 1024]) — Размерность входных каналов для каждого этапа backbone. Определяет, сколько каналов будет иметь вход на каждом этапе.
  • stage_mid_channels (list[int], необязательный, по умолчанию [48, 96, 192, 384]) — Размеры промежуточных каналов для каждого этапа backbone. Определяет количество каналов, используемых в промежуточных слоях каждого этапа.
  • stage_out_channels (list[int], необязательный, по умолчанию [128, 512, 1024, 2048]) — Размерность выходных каналов для каждого этапа backbone. Определяет количество каналов на выходе каждого этапа.
  • stage_num_blocks (list[int], необязательный, по умолчанию [1, 1, 3, 1]) — Количество блоков, используемых на каждом этапе backbone. Этот параметр управляет глубиной каждого этапа, задавая, сколько свёрточных блоков нужно сложить.
  • stage_downsample (list[bool], необязательный, по умолчанию [False, True, True, True]) — Указывает, следует ли уменьшать размерность карт признаков на каждом этапе. Если True, пространственные размеры карт признаков будут уменьшены.
  • stage_downsample_strides (Sequence[int | list[int] | tuple[int, ...]], необязательный, по умолчанию (2, 2, 2, 2)) — Шаги (strides) для каждого слоя стадии.
  • stage_light_block (list[bool], необязательный, по умолчанию [False, False, True, True]) — Указывает, следует ли использовать лёгкие блоки на каждом этапе. Лёгкие блоки — это вариант свёрточных блоков, который может содержать меньше параметров.
  • stage_kernel_size (list[int], необязательный, по умолчанию [3, 3, 5, 5]) — Размеры ядер для свёрточных слоёв на каждом этапе.
  • stage_numb_of_layers (list[int], необязательный, по умолчанию [6, 6, 6, 6]) — Количество слоев, используемых в каждом блоке этапа.
  • use_learnable_affine_block (bool, необязательный, по умолчанию False) — Указывает, следует ли использовать блоки Learnable Affine Blocks (LAB) в сети. LAB добавляет обучаемые параметры масштаба и смещения после определённых операций.
  • initializer_range (float, необязательный, по умолчанию 0.02) — Стандартное отклонение truncated_normal_initializer, используемое для инициализации всех матриц весов.

Это класс конфигурации для хранения конфигурации HGNetV2Backbone. Он используется для создания модели Hgnet V2 в соответствии с указанными аргументами, определяющими архитектуру модели. Создание конфигурации с параметрами по умолчанию даст конфигурацию, аналогичную конфигурации ustc-community/dfine_x_coco

Объекты конфигурации наследуются от PreTrainedConfig и могут использоваться для управления выводами модели. Подробнее читайте в документации PreTrainedConfig.

HGNetV2Backbone

класс transformers.HGNetV2Backbone

< >

( config: HGNetV2Config )

forward

< >

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

Параметры

  • pixel_values (torch.Tensor формы (batch_size, num_channels, image_size, image_size)) — Тензоры, соответствующие входным изображениям. Значения пикселей можно получить с помощью image_processor_class. Подробности см. в image_processor_class.__call__ (processor_class использует image_processor_class для обработки изображений).
  • output_hidden_states (bool, необязательный) — Указывает, следует ли возвращать скрытые состояния всех слоев. Подробности см. в описании hidden_states среди возвращаемых тензоров.
  • return_dict (bool, необязательный) — Указывает, следует ли возвращать ModelOutput вместо обычного кортежа.

Возвращает

BackboneOutput или tuple(torch.Tensor)

BackboneOutput или кортеж из torch.Tensor (если передано return_dict=False или если config.return_dict=False), содержащий различные элементы в зависимости от конфигурации (HGNetV2Config) и входных данных.

Метод forward класса HGNetV2Backbone переопределяет специальный метод __call__.

Хотя рецепт для прямого прохода должен быть определён внутри этой функции, после этого следует вызывать экземпляр Module, а не эту функцию, поскольку первый вариант обеспечивает выполнение шагов предварительной и последующей обработки, тогда как второй молча их игнорирует.

  • feature_maps (tuple(torch.Tensor) формы (batch_size, num_channels, height, width)) — Карты признаков на каждом этапе.

  • hidden_states (tuple(torch.Tensor), необязательный, возвращается при передаче output_hidden_states=True или при config.output_hidden_states=True) — Кортеж из torch.Tensor (один для вывода эмбеддингов + один для вывода каждого слоя) с формой (batch_size, sequence_length, hidden_size) или (batch_size, num_channels, height, width) в зависимости от базовой модели.

    Скрытые состояния модели на выходе каждого этапа, а также выходные значения начального слоя встраивания.

  • attentions (tuple(torch.Tensor), необязательный, возвращается при передаче output_attentions=True или при config.output_attentions=True) — Кортеж torch.Tensor (по одному на каждый слой) формы (batch_size, num_heads, sequence_length, sequence_length). Применимо только в том случае, если базовая модель использует механизм внимания.

    Веса внимания после softmax в механизме внимания, используемые для вычисления взвешенного среднего в головах само-внимания.

Примеры:

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

класс transformers.HGNetV2ForImageClassification

< >

( config: HGNetV2Config )

Параметры

  • config (HGNetV2Config) — Класс конфигурации модели, содержащий все параметры модели. Инициализация с помощью файла конфигурации не загружает веса, связанные с моделью, а только конфигурацию. Чтобы загрузить веса модели, используйте метод from_pretrained().

Модель HGNetV2 с головной частью для классификации изображений (линейный слой поверх пул-фич), например, для ImageNet.

Эта модель наследуется от PreTrainedModel. См. документацию родительского класса для общих методов, которые библиотека реализует для всех своих моделей (например, загрузка или сохранение, изменение размера входных эмбеддингов, обрезка голов и т. д.)

Эта модель также является подклассом torch.nn.Module в PyTorch. Используйте её как обычный модуль PyTorch и обращайтесь к документации PyTorch по всем вопросам, связанным с общим использованием и поведением.

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)

Параметры

  • pixel_values (torch.Tensor формы (batch_size, num_channels, image_size, image_size), необязательный) — Тензоры, соответствующие входным изображениям. Значения пикселей можно получить с помощью image_processor_class. Подробности см. в image_processor_class.__call__ (processor_class использует image_processor_class для обработки изображений).
  • labels (torch.LongTensor формы (batch_size,), необязательный) — Метки для вычисления функции потерь классификации/регрессии изображений. Индексы должны находиться в диапазоне [0, ..., config.num_labels - 1]. Если config.num_labels == 1, вычисляется функция потерь регрессии (среднеквадратичная ошибка), если config.num_labels > 1 — функция потерь классификации (кросс-энтропия).
  • output_hidden_states (bool, необязательный) — Указывает, следует ли возвращать скрытые состояния всех слоев. Подробности см. в описании hidden_states среди возвращаемых тензоров.
  • return_dict (bool, необязательный) — Указывает, следует ли возвращать ModelOutput вместо обычного кортежа.

Возвращает

ImageClassifierOutputWithNoAttention или tuple(torch.Tensor)

Объект ImageClassifierOutputWithNoAttention или кортеж torch.Tensor (если передано return_dict=False или если config.return_dict=False), содержащий различные элементы в зависимости от конфигурации (HGNetV2Config) и входных данных.

Метод forward класса HGNetV2ForImageClassification переопределяет специальный метод __call__.

Хотя рецепт для прямого прохода должен быть определён внутри этой функции, после этого следует вызывать экземпляр Module, а не эту функцию, поскольку первый вариант обеспечивает выполнение шагов предварительной и последующей обработки, тогда как второй молча их игнорирует.

  • loss (torch.Tensor формы (1,), необязательный, возвращается, если задан labels) — Потери классификации (или регрессии, если config.num_labels==1).
  • logits (torch.Tensor формы (batch_size, config.num_labels)) — Оценки для классификации (или регрессии, если config.num_labels==1) до применения SoftMax.
  • hidden_states (tuple(torch.Tensor), необязательный, возвращается при передаче output_hidden_states=True или при config.output_hidden_states=True) — Кортеж из torch.Tensor (один для вывода слоя встраиваний, если модель имеет слой встраиваний, + один для вывода каждого этапа) формы (batch_size, num_channels, height, width). Скрытые состояния (также называемые картами признаков) модели на выходе каждого этапа.

Примеры:

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