# PPLCNetV4

PPLCNetV4 se proporciona únicamente como red de base. No se ha publicado oficialmente ningún punto de control preentrenado para clasificación de imágenes.

## PPLCNetV4Config[[transformers.PPLCNetV4Config]]

#### transformers.PPLCNetV4Config[[transformers.PPLCNetV4Config]]

```python
transformers.PPLCNetV4Config(transformers_version: str | None = None, architectures: list[str] | None = None, output_hidden_states: bool | None = False, return_dict: bool | None = True, dtype: str | torch.dtype | None = None, chunk_size_feed_forward: int = 0, is_encoder_decoder: bool = False, id2label: dict[int, str] | dict[str, str] | None = None, label2id: dict[str, int] | dict[str, str] | None = None, problem_type: Literal['regression', 'single_label_classification', 'multi_label_classification'] | None = None, scale: float | int = 1.0, block_configs: list | None = None, stem_channels: list[int] | tuple[int, ...] = (3, 48, 96), reduction: int = 4, hidden_act: str = 'relu', _out_features: list[str] | None = None, _out_indices: list[int] | None = None, num_channels: int = 3, stem_strides: Sequence = (2, 1, 1, 2, 1), stem_type: str = 'large', use_learnable_affine_block: bool = False)
```

[Fuente](https://github.com/huggingface/transformers/blob/main/src/transformers/models/pp_lcnet_v4/configuration_pp_lcnet_v4.py#L33)

**Parámetros:**

scale (`float`, *opcional*, valor predeterminado 1.0) : Factor de escala para las dimensiones de canal del modelo, utilizado para ajustar el tamaño del modelo y el coste computacional sin cambiar la arquitectura general (p. ej., 0.25, 0.5, 1.0, 1.5).

block_configs (`list[list[tuple]]`, *opcional*, valor predeterminado `None`) : Configuración para cada bloque en cada etapa. Cada tupla contiene: (kernel_size, in_channels, out_channels, stride, use_squeeze_excitation). Si es `None`, se utiliza la configuración predeterminada de PP-LCNet.

stem_channels (`list[int]`, *opcional*, valor predeterminado `[3, 48, 96]`) : 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 (48) son los canales intermedios del tallo - El tercer número (96) son los canales de salida del tallo

reduction (`int`, *opcional*, valor predeterminado: 4) : El factor de reducción para las dimensiones de los canales de características en los bloques squeeze-and-excitation (SE), utilizado para reducir el número de parámetros del modelo y la complejidad computacional manteniendo la capacidad de representación de las características.

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.

num_channels (`int`, *opcional*, valor predeterminado `3`) : El número de canales de entrada.

stem_strides (`Sequence[int | list[int] | tuple[int, ...]]`, *opcional*, valor predeterminado `(2, 1, 1, 2, 1)`) : Patrones de paso para las capas del tallo.

stem_type (`str`, *opcional*, valor predeterminado `large`) : El tipo de capa de tallo a utilizar. Puede ser uno de los siguientes: - `"large"`: Tallo estándar de PP-LCNetV4. - `"small"`: Variante con dimensiones de canal más pequeñas.

use_learnable_affine_block (`bool`, *opcional*, valor predeterminado `False`) : Indica si se deben usar bloques afines aprendibles (LAB) en la red. LAB añade parámetros de escala y sesgo aprendibles después de ciertas operaciones.

Esta es la clase de configuración para almacenar la configuración de un Pp Lcnet V4Model. Se utiliza para instanciar un modelo Pp Lcnet V4 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 [PaddlePaddle/Not_yet_released](https://huggingface.co/PaddlePaddle/Not_yet_released)

Los objetos de configuración heredan de [PreTrainedConfig](/docs/transformers/main/es/main_classes/configuration#transformers.PreTrainedConfig) y se pueden utilizar para controlar las salidas del modelo. Consulte la documentación de [PreTrainedConfig](/docs/transformers/main/es/main_classes/configuration#transformers.PreTrainedConfig) para obtener más información.

## PPLCNetV4Backbone[[transformers.PPLCNetV4Backbone]]

#### transformers.PPLCNetV4Backbone[[transformers.PPLCNetV4Backbone]]

```python
transformers.PPLCNetV4Backbone(config: PPLCNetV4Config)
```

[Fuente](https://github.com/huggingface/transformers/blob/main/src/transformers/models/pp_lcnet_v4/modeling_pp_lcnet_v4.py#L351)

**Parámetros:**

config ([PPLCNetV4Config](/docs/transformers/main/es/model_doc/pp_lcnet_v4#transformers.PPLCNetV4Config)) : 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()](/docs/transformers/main/es/main_classes/model#transformers.PreTrainedModel.from_pretrained) para cargar los pesos del modelo.

Modelo backbone PPLCNetV4 para la extracción de características.

Este modelo hereda de [PreTrainedModel](/docs/transformers/main/es/main_classes/model#transformers.PreTrainedModel). Consulte 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](https://pytorch.org/docs/stable/nn.html#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[[transformers.PPLCNetV4Backbone.forward]]

```python
forward(pixel_values: Tensor, **kwargs: *<class 'transformers.utils.generic.TransformersKwargs'>)
```

[Fuente](https://github.com/huggingface/transformers/blob/main/src/transformers/models/pp_lcnet_v4/modeling_pp_lcnet_v4.py#L364)

**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 mediante `image_processor_class`. Consulte `image_processor_class.__call__` para más detalles (`processor_class` utiliza `image_processor_class` para procesar las imágenes).

**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 ([PPLCNetV4Config](/docs/transformers/main/es/model_doc/pp_lcnet_v4#transformers.PPLCNetV4Config)) y las entradas.

El método forward de [PPLCNetV4Backbone](/docs/transformers/main/es/model_doc/pp_lcnet_v4#transformers.PPLCNetV4Backbone) 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 preprocesamiento y posprocesamiento, 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*, 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, sequence_length, hidden_size)` o `(batch_size, num_channels, height, width)`, dependiendo del 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 utiliza 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:

```python
>>> from transformers import PPLCNetV4Config, PPLCNetV4Backbone
>>> import torch

>>> config = PPLCNetV4Config()
>>> model = PPLCNetV4Backbone(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)
```

