# FLAVA

## Обзор

Модель FLAVA была предложена в статье [FLAVA: A Foundational Language And Vision Alignment Model](https://huggingface.co/papers/2112.04482) авторами Amanpreet Singh, Ronghang Hu, Vedanuj Goswami, Guillaume Couairon, Wojciech Galuba, Marcus Rohrbach и Douwe Kiela и принята к публикации на CVPR 2022.

Статья ставит целью создание единой универсальной базовой модели, способной работать с задачами в области зрения, языка, а также мультимодальными задачами, объединяющими зрение и язык.

Аннотация из статьи следующая:

*Современные модели компьютерного зрения и мультимодальные модели (зрение и язык) полагаются на крупномасштабное предобучение на данных, объединяющих зрение и язык, чтобы достигать высоких результатов на разнообразных задачах. Как правило, такие модели являются либо кросс-модальными (контрастными), либо мультимодальными (с ранним слиянием), но не и тем и другим одновременно; при этом они часто нацелены на конкретные модальности или задачи. Перспективным направлением является использование единой целостной универсальной модели в качестве «фундамента», которая одновременно работает со всеми модальностями: по-настоящему фундаментальная модель для задач зрения и языка должна хорошо справляться с задачами зрения, задачами языка, а также с кросс- и мультимодальными задачами, объединяющими зрение и язык. Мы представляем FLAVA как такую модель и демонстрируем впечатляющие результаты на широком спектре из 35 задач, охватывающих указанные модальности.*

Эта модель была предоставлена пользователем [aps](https://huggingface.co/aps). Исходный код можно найти [здесь](https://github.com/facebookresearch/multimodal/tree/main/examples/flava).

## FlavaConfig[[transformers.FlavaConfig]]

#### transformers.FlavaConfig[[transformers.FlavaConfig]]

```python
transformers.FlavaConfig(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, image_config: dict[str, typing.Any] | transformers.configuration_utils.PreTrainedConfig | None = None, text_config: dict[str, typing.Any] | transformers.configuration_utils.PreTrainedConfig | None = None, multimodal_config: dict[str, typing.Any] | transformers.configuration_utils.PreTrainedConfig | None = None, image_codebook_config: dict[str, typing.Any] | transformers.configuration_utils.PreTrainedConfig | None = None, hidden_size: int = 768, layer_norm_eps: float = 1e-12, projection_dim: int = 768, init_codebook: bool = True, logit_scale_init_value: float = 2.6592, initializer_range: float = 0.02, ce_ignore_index: int = -100, mim_weight: float = 1.0, mlm_weight: float = 1.0, global_contrastive_weight: float = 1.0, itm_weight: float = 1.0, mmm_image_weight: float = 1.0, mmm_text_weight: float = 1.0, global_backprop_contrastive: bool = True, skip_unmasked_multimodal_encoder: bool = True, return_loss: bool = True, tie_word_embeddings: bool = True, initializer_factor: float = 1.0)
```

[Источник](https://github.com/huggingface/transformers/blob/v5.23.0/src/transformers/models/flava/configuration_flava.py#L185)

**Параметры:**

image_config (`dict`, *необязательный*) : Словарь параметров конфигурации, используемых для инициализации [FlavaImageConfig](/docs/transformers/v5.23.0/ru/model_doc/flava#transformers.FlavaImageConfig).

text_config (`Union[dict[str, Any], ~configuration_utils.PreTrainedConfig]`, *необязательный*) : Объект конфигурации или словарь текстового бэкбона.

multimodal_config (`dict`, *необязательный*) : Словарь параметров конфигурации, используемых для инициализации [FlavaMultimodalConfig](/docs/transformers/v5.23.0/ru/model_doc/flava#transformers.FlavaMultimodalConfig).

image_codebook_config (`dict`, *необязательный*) : Словарь параметров конфигурации, используемых для инициализации `FlavaCodebookConfig`.

hidden_size (`int`, *optional*, по умолчанию `768`) : Размерность скрытых представлений.

layer_norm_eps (`float`, *необязательный*, по умолчанию `1e-12`) : Значение epsilon, используемое слоями нормализации.

projection_dim (`int`, *optional*, по умолчанию `768`) : Размерность проекционных слоёв для текста и изображений.

init_codebook (`bool`, *необязательный*, по умолчанию `True`) : Инициализировать ли кодовую книгу

logit_scale_init_value (`float`, *необязательный*, по умолчанию 2.6592) : Начальное значение параметра *logit_scale*. По умолчанию используется значение из исходной реализации FLAVA/CLIP.

initializer_range (`float`, *необязательный*, по умолчанию `0.02`) : Стандартное отклонение truncated_normal_initializer для инициализации всех матриц весов.

ce_ignore_index (`int`, *optional*, по умолчанию -100) : Индекс кросс-энтропии, который следует игнорировать.

mim_weight (`float`, *необязательный*, по умолчанию 1.0) : Вес, назначаемый одноимодной потере MIM (Masked Image Modeling)

mlm_weight (`float`, *необязательный*, по умолчанию 1.0) : Вес, назначаемый одно-modalной потере MLM (Masked Language Modeling)

global_contrastive_weight (`float`, *необязательный*, по умолчанию 1.0) : Вес, назначаемый глобальной потере контрастивного кросс-выравнивания.

itm_weight (`float`, *необязательный*, по умолчанию 1.0) : Вес, назначаемый мультимодальной функции потерь для соответствия изображения и текста.

mmm_image_weight (`float`, *необязательный*, по умолчанию 1.0) : Вес, назначаемый изображению в потере MMM.

mmm_text_weight (`float`, *необязательный*, по умолчанию 1.0) : Вес, назначаемый текстовой части функции потерь MMM.

global_backprop_contrastive (`bool`, *необязательный*, по умолчанию `True`) : Использовать ли глобальную обратную передачу через всех рабочих в контрастивной функции потерь.

skip_unmasked_multimodal_encoder (`bool`, *необязательный*, по умолчанию `True`) : Определяет, следует ли пропускать выполнение немаскированного мультимодального энкодера, выходные данные которого не используются в потерях FLAVA.

return_loss (`bool`, *необязательный*, по умолчанию `True`) : Возвращать ли loss

tie_word_embeddings (`bool`, *необязательный*, по умолчанию `True`) : Связывать ли веса эмбеддингов согласно отображению `tied_weights_keys` модели.

initializer_factor (`float`, *необязательный*, по умолчанию `1.0`) : Коэффициент для инициализации всех матриц весов (должен оставаться равным 1, используется внутренне для тестирования инициализации).

Это класс конфигурации для хранения настроек модели FlavaModel. Он используется для создания модели Flava в соответствии с указанными аргументами, определяя архитектуру модели. Создание конфигурации с параметрами по умолчанию даст конфигурацию, аналогичную конфигурации [facebook/flava-full](https://huggingface.co/facebook/flava-full)

Объекты конфигурации наследуются от [PreTrainedConfig](/docs/transformers/v5.23.0/ru/main_classes/configuration#transformers.PreTrainedConfig) и могут использоваться для управления выводами модели. Подробнее см. в документации [PreTrainedConfig](/docs/transformers/v5.23.0/ru/main_classes/configuration#transformers.PreTrainedConfig).

Пример:

```python
>>> from transformers import FlavaConfig, FlavaModel, FlavaForPreTraining

>>> # Initializing a FlavaConfig with style configuration
>>> configuration = FlavaConfig()

>>> # Initializing a FlavaModel and FlavaForPreTraining model (with random weights) from the style configuration
>>> model = FlavaModel(configuration)
>>> model_pre = FlavaForPreTraining(configuration)

>>> # Accessing the model configuration
>>> configuration = model.config
>>> configuration_pre = model_pre.config
```

## FlavaTextConfig[[transformers.FlavaTextConfig]]

#### transformers.FlavaTextConfig[[transformers.FlavaTextConfig]]

```python
transformers.FlavaTextConfig(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, vocab_size: int = 30522, type_vocab_size: int = 2, max_position_embeddings: int = 512, hidden_size: int = 768, num_hidden_layers: int = 12, num_attention_heads: int = 12, intermediate_size: int = 3072, hidden_act: str = 'gelu', hidden_dropout_prob: float | int = 0.0, attention_probs_dropout_prob: float | int = 0.0, initializer_range: float = 0.02, layer_norm_eps: float = 1e-12, pad_token_id: int | None = 0, qkv_bias: bool = True)
```

[Источник](https://github.com/huggingface/transformers/blob/v5.23.0/src/transformers/models/flava/configuration_flava.py#L71)

**Параметры:**

vocab_size (`int`, *необязательный*, по умолчанию `30522`) : Размер словаря модели. Определяет количество различных токенов, которые могут быть представлены в `input_ids`.

type_vocab_size (`int`, *необязательный*, по умолчанию `2`) : Размер словаря для `token_type_ids`.

max_position_embeddings (`int`, *необязательный*, по умолчанию `512`) : Максимальная длина последовательности, с которой может использоваться данная модель.

hidden_size (`int`, *optional*, по умолчанию `768`) : Размерность скрытых представлений.

num_hidden_layers (`int`, *необязательный*, по умолчанию `12`) : Количество скрытых слоев в декодере Transformer.

num_attention_heads (`int`, *необязательный*, по умолчанию `12`) : Количество головок внимания для каждого слоя внимания в декодере Transformer.

intermediate_size (`int`, *optional*, по умолчанию `3072`) : Размерность представлений MLP.

hidden_act (`str`, *необязательный*, по умолчанию `gelu`) : Нелинейная функция активации (функция или строка) в декодере. Например, `"gelu"`, `"relu"`, `"silu"` и т. д.

hidden_dropout_prob (`Union[float, int]`, *необязательный*, по умолчанию `0.0`) : Вероятность dropout для всех полносвязных слоёв в эмбеддингах, энкодере и пулере.

attention_probs_dropout_prob (`Union[float, int]`, *необязательный*, по умолчанию `0.0`) : Коэффициент dropout для вероятностей внимания.

initializer_range (`float`, *необязательный*, по умолчанию `0.02`) : Стандартное отклонение truncated_normal_initializer для инициализации всех матриц весов.

layer_norm_eps (`float`, *необязательный*, по умолчанию `1e-12`) : Значение epsilon, используемое слоями нормализации.

pad_token_id (`int`, *необязательный*, по умолчанию `0`) : Идентификатор токена, используемый для выравнивания в словаре.

qkv_bias (`bool`, *необязательный*, по умолчанию `True`) : Добавлять ли смещение (bias) к запросам, ключам и значениям.

Это класс конфигурации для хранения настроек модели FlavaModel. Он используется для создания модели Flava в соответствии с указанными аргументами, определяя архитектуру модели. Создание конфигурации с параметрами по умолчанию даст конфигурацию, аналогичную конфигурации [facebook/flava-full](https://huggingface.co/facebook/flava-full)

Объекты конфигурации наследуются от [PreTrainedConfig](/docs/transformers/v5.23.0/ru/main_classes/configuration#transformers.PreTrainedConfig) и могут использоваться для управления выводами модели. Подробнее см. в документации [PreTrainedConfig](/docs/transformers/v5.23.0/ru/main_classes/configuration#transformers.PreTrainedConfig).

Пример:

```python
>>> from transformers import FlavaTextConfig, FlavaTextModel

>>> # Initializing a FlavaTextModel with  style configuration
>>> configuration = FlavaTextConfig()

>>> # Initializing a FlavaTextModel model (with random weights) from the style configuration
>>> model = FlavaTextModel(configuration)

>>> # Accessing the model configuration
>>> configuration = model.config
```

## FlavaImageConfig[[transformers.FlavaImageConfig]]

#### transformers.FlavaImageConfig[[transformers.FlavaImageConfig]]

```python
transformers.FlavaImageConfig(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, hidden_size: int = 768, num_hidden_layers: int = 12, num_attention_heads: int = 12, intermediate_size: int = 3072, hidden_act: str = 'gelu', hidden_dropout_prob: float | int = 0.0, attention_probs_dropout_prob: float | int = 0.0, initializer_range: float = 0.02, layer_norm_eps: float = 1e-12, image_size: int | list[int] | tuple[int, int] = 224, patch_size: int | list[int] | tuple[int, int] = 16, num_channels: int = 3, qkv_bias: bool = True, mask_token: bool = True, vocab_size: int = 8192)
```

[Источник](https://github.com/huggingface/transformers/blob/v5.23.0/src/transformers/models/flava/configuration_flava.py#L29)

**Параметры:**

hidden_size (`int`, *optional*, по умолчанию `768`) : Размерность скрытых представлений.

num_hidden_layers (`int`, *необязательный*, по умолчанию `12`) : Количество скрытых слоев в декодере Transformer.

num_attention_heads (`int`, *необязательный*, по умолчанию `12`) : Количество головок внимания для каждого слоя внимания в декодере Transformer.

intermediate_size (`int`, *optional*, по умолчанию `3072`) : Размерность представлений MLP.

hidden_act (`str`, *необязательный*, по умолчанию `gelu`) : Нелинейная функция активации (функция или строка) в декодере. Например, `"gelu"`, `"relu"`, `"silu"` и т. д.

hidden_dropout_prob (`Union[float, int]`, *необязательный*, по умолчанию `0.0`) : Вероятность dropout для всех полносвязных слоёв в эмбеддингах, энкодере и пулере.

attention_probs_dropout_prob (`Union[float, int]`, *необязательный*, по умолчанию `0.0`) : Коэффициент dropout для вероятностей внимания.

initializer_range (`float`, *необязательный*, по умолчанию `0.02`) : Стандартное отклонение truncated_normal_initializer для инициализации всех матриц весов.

layer_norm_eps (`float`, *необязательный*, по умолчанию `1e-12`) : Значение epsilon, используемое слоями нормализации.

image_size (`Union[int, list[int], tuple[int, int]]`, *необязательный*, по умолчанию `224`) : Размер (разрешение) каждого изображения.

patch_size (`Union[int, list[int], tuple[int, int]]`, *необязательный*, по умолчанию `16`) : Размер (разрешение) каждого патча.

num_channels (`int`, *необязательный*, по умолчанию `3`) : Количество входных каналов.

qkv_bias (`bool`, *необязательный*, по умолчанию `True`) : Добавлять ли смещение (bias) к запросам, ключам и значениям.

mask_token (`bool`, *необязательный*, по умолчанию `True`) : Использовать ли токен маски. Применяется в функции потерь MIM (Masked Image Modeling) для FLAVA.

vocab_size (`int`, *необязательный*, по умолчанию `8192`) : Размер словаря модели. Определяет количество различных токенов, которые могут быть представлены в `input_ids`.

Это класс конфигурации для хранения настроек модели FlavaModel. Он используется для создания модели Flava в соответствии с указанными аргументами, определяя архитектуру модели. Создание конфигурации с параметрами по умолчанию даст конфигурацию, аналогичную конфигурации [facebook/flava-full](https://huggingface.co/facebook/flava-full)

Объекты конфигурации наследуются от [PreTrainedConfig](/docs/transformers/v5.23.0/ru/main_classes/configuration#transformers.PreTrainedConfig) и могут использоваться для управления выводами модели. Подробнее см. в документации [PreTrainedConfig](/docs/transformers/v5.23.0/ru/main_classes/configuration#transformers.PreTrainedConfig).

Пример:

```python
>>> from transformers import FlavaImageConfig, FlavaImageModel

>>> # Initializing a FlavaImageModel with  style configuration
>>> configuration = FlavaImageConfig()

>>> # Initializing a FlavaImageModel model (with random weights) from the style configuration
>>> model = FlavaImageModel(configuration)

>>> # Accessing the model configuration
>>> configuration = model.config
```

## FlavaMultimodalConfig[[transformers.FlavaMultimodalConfig]]

#### transformers.FlavaMultimodalConfig[[transformers.FlavaMultimodalConfig]]

```python
transformers.FlavaMultimodalConfig(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, hidden_size: int = 768, num_hidden_layers: int = 6, num_attention_heads: int = 12, intermediate_size: int = 3072, hidden_act: str = 'gelu', hidden_dropout_prob: float | int = 0.0, attention_probs_dropout_prob: float | int = 0.0, initializer_range: float = 0.02, layer_norm_eps: float = 1e-12, qkv_bias: bool = True, use_cls_token: bool = True)
```

[Источник](https://github.com/huggingface/transformers/blob/v5.23.0/src/transformers/models/flava/configuration_flava.py#L109)

**Параметры:**

hidden_size (`int`, *optional*, по умолчанию `768`) : Размерность скрытых представлений.

num_hidden_layers (`int`, *необязательный*, по умолчанию `6`) : Количество скрытых слоев в декодере Transformer.

num_attention_heads (`int`, *необязательный*, по умолчанию `12`) : Количество головок внимания для каждого слоя внимания в декодере Transformer.

intermediate_size (`int`, *optional*, по умолчанию `3072`) : Размерность представлений MLP.

hidden_act (`str`, *необязательный*, по умолчанию `gelu`) : Нелинейная функция активации (функция или строка) в декодере. Например, `"gelu"`, `"relu"`, `"silu"` и т. д.

hidden_dropout_prob (`Union[float, int]`, *необязательный*, по умолчанию `0.0`) : Вероятность dropout для всех полносвязных слоёв в эмбеддингах, энкодере и пулере.

attention_probs_dropout_prob (`Union[float, int]`, *необязательный*, по умолчанию `0.0`) : Коэффициент dropout для вероятностей внимания.

initializer_range (`float`, *необязательный*, по умолчанию `0.02`) : Стандартное отклонение truncated_normal_initializer для инициализации всех матриц весов.

layer_norm_eps (`float`, *необязательный*, по умолчанию `1e-12`) : Значение epsilon, используемое слоями нормализации.

qkv_bias (`bool`, *необязательный*, по умолчанию `True`) : Добавлять ли смещение (bias) к запросам, ключам и значениям.

use_cls_token (`bool`, *необязательный*, по умолчанию `True`) : Использовать ли дополнительный токен CLS для мультимодальных настроек. Обычно требуется для модели FLAVA.

Это класс конфигурации для хранения настроек модели FlavaModel. Он используется для создания модели Flava в соответствии с указанными аргументами, определяя архитектуру модели. Создание конфигурации с параметрами по умолчанию даст конфигурацию, аналогичную конфигурации [facebook/flava-full](https://huggingface.co/facebook/flava-full)

Объекты конфигурации наследуются от [PreTrainedConfig](/docs/transformers/v5.23.0/ru/main_classes/configuration#transformers.PreTrainedConfig) и могут использоваться для управления выводами модели. Подробнее см. в документации [PreTrainedConfig](/docs/transformers/v5.23.0/ru/main_classes/configuration#transformers.PreTrainedConfig).

Пример:

```python
>>> from transformers import FlavaMultimodalConfig, FlavaMultimodalModel

>>> # Initializing a FlavaMultimodalModel with  style configuration
>>> configuration = FlavaMultimodalConfig()

>>> # Initializing a FlavaMultimodalModel model (with random weights) from the style configuration
>>> model = FlavaMultimodalModel(configuration)

>>> # Accessing the model configuration
>>> configuration = model.config
```

## FlavaImageCodebookConfig[[transformers.FlavaImageCodebookConfig]]

#### transformers.FlavaImageCodebookConfig[[transformers.FlavaImageCodebookConfig]]

```python
transformers.FlavaImageCodebookConfig(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, num_groups: int = 4, input_channels: int = 3, num_blocks_per_group: int = 2, hidden_size: int = 256, vocab_size: int = 8192, freeze: bool = True, initializer_range: float = 0.02)
```

[Источник](https://github.com/huggingface/transformers/blob/v5.23.0/src/transformers/models/flava/configuration_flava.py#L147)

**Параметры:**

num_groups (`int`, *optional*, по умолчанию 4) : Количество создаваемых групп. На данный момент этот параметр не влияет на модель и используется для некоторых внутренних вычислений и оценок.

input_channels (`int`, *необязательный*, по умолчанию `3`) : Количество входных каналов.

num_blocks_per_group (`int`, *необязательный*, по умолчанию 2) : Количество блоков на основе свёрток в каждой группе.

hidden_size (`int`, *optional*, по умолчанию `256`) : Размерность скрытых представлений.

vocab_size (`int`, *необязательный*, по умолчанию `8192`) : Размер словаря модели. Определяет количество различных токенов, которые могут быть представлены в `input_ids`.

freeze (`bool`, по умолчанию `True`) : Зафиксировать ли веса модели.

initializer_range (`float`, *необязательный*, по умолчанию `0.02`) : Стандартное отклонение truncated_normal_initializer для инициализации всех матриц весов.

Это класс конфигурации для хранения настроек модели FlavaModel. Он используется для создания модели Flava в соответствии с указанными аргументами, определяя архитектуру модели. Создание конфигурации с параметрами по умолчанию даст конфигурацию, аналогичную конфигурации [facebook/flava-full](https://huggingface.co/facebook/flava-full)

Объекты конфигурации наследуются от [PreTrainedConfig](/docs/transformers/v5.23.0/ru/main_classes/configuration#transformers.PreTrainedConfig) и могут использоваться для управления выводами модели. Подробнее см. в документации [PreTrainedConfig](/docs/transformers/v5.23.0/ru/main_classes/configuration#transformers.PreTrainedConfig).

Пример:

```python
>>> from transformers import FlavaImageCodebookConfig, FlavaImageCodebook

>>> # Initializing a FlavaImageCodebook with style configuration
>>> configuration = FlavaImageCodebookConfig()

>>> # Initializing a FlavaImageCodebook model (with random weights) from the style configuration
>>> model = FlavaImageCodebook(configuration)
>>> # Accessing the model configuration
>>> configuration = model.config
```

## FlavaProcessor[[transformers.FlavaProcessor]]

#### transformers.FlavaProcessor[[transformers.FlavaProcessor]]

```python
transformers.FlavaProcessor(image_processor = None, tokenizer = None, **kwargs)
```

[Источник](https://github.com/huggingface/transformers/blob/v5.23.0/src/transformers/models/flava/processing_flava.py#L23)

**Параметры:**

image_processor (`FlavaImageProcessor`) : Процессор изображений является обязательным входным параметром.

tokenizer (`BertTokenizer`) : Токенизатор является обязательным входным параметром.

Создаёт FlavaProcessor, который объединяет процессор изображений и токенизатор в единый процессор.

[FlavaProcessor](/docs/transformers/v5.23.0/ru/model_doc/flava#transformers.FlavaProcessor) предоставляет все возможности [FlavaImageProcessor](/docs/transformers/v5.23.0/ru/model_doc/flava#transformers.FlavaImageProcessor) и [BertTokenizer](/docs/transformers/v5.23.0/ru/model_doc/lxmert#transformers.BertTokenizer). Подробнее см. в документации [~FlavaImageProcessor](/docs/transformers/v5.23.0/ru/model_doc/flava#transformers.FlavaImageProcessor) и [~BertTokenizer](/docs/transformers/v5.23.0/ru/model_doc/lxmert#transformers.BertTokenizer).

#### __call__[[transformers.FlavaProcessor.__call__]]

```python
__call__(images: typing.Union[ForwardRef('PIL.Image.Image'), numpy.ndarray, ForwardRef('torch.Tensor'), list['PIL.Image.Image'], list[numpy.ndarray], list['torch.Tensor'], NoneType] = None, text: str | list[str] | list[list[str]] | None = None, videos: typing.Union[list['PIL.Image.Image'], numpy.ndarray, ForwardRef('torch.Tensor'), list[numpy.ndarray], list['torch.Tensor'], list[list['PIL.Image.Image']], list[list[numpy.ndarray]], list[list['torch.Tensor']], transformers.video_utils.URL, list[transformers.video_utils.URL], list[list[transformers.video_utils.URL]], transformers.video_utils.Path, list[transformers.video_utils.Path], list[list[transformers.video_utils.Path]], NoneType] = None, audio: typing.Union[numpy.ndarray, ForwardRef('torch.Tensor'), collections.abc.Sequence[numpy.ndarray], collections.abc.Sequence['torch.Tensor'], NoneType] = None, **kwargs: *<class 'transformers.processing_utils.ProcessingKwargs'>)
```

[Источник](https://github.com/huggingface/transformers/blob/v5.23.0/src/transformers/processing_utils.py#L670)

**Параметры:**

images (`Union[PIL.Image.Image, numpy.ndarray, torch.Tensor, list[PIL.Image.Image], list[numpy.ndarray], list[torch.Tensor]]`, *необязательный*) : Изображение для предварительной обработки. Ожидается одно изображение или пакет изображений со значениями пикселей в диапазоне от 0 до 255. Если передаются изображения со значениями пикселей в диапазоне от 0 до 1, установите `do_rescale=False`.

text (`Union[str, list[str], list[list[str]]]`, *необязательный*) : Последовательность или батч последовательностей для кодирования. Каждая последовательность может быть строкой или списком строк (предтокенизированная строка). Если вы передаёте предтокенизированный вход, установите `is_split_into_words=True`, чтобы избежать неоднозначности с батчированными входами.

videos (`Union[list[PIL.Image.Image], numpy.ndarray, torch.Tensor, list[numpy.ndarray], list[torch.Tensor], list[list[PIL.Image.Image]], list[list[numpy.ndarray]], list[list[torch.Tensor]], ~video_utils.URL, list[~video_utils.URL], list[list[~video_utils.URL]], ~video_utils.Path, list[~video_utils.Path], list[list[~video_utils.Path]]]`, *optional*) : Видео для предобработки. Ожидается одно видео или батч видео со значениями пикселей в диапазоне от 0 до 255. Если передаются видео со значениями пикселей от 0 до 1, установите `do_rescale=False`.

audio (`Union[numpy.ndarray, torch.Tensor, collections.abc.Sequence[numpy.ndarray], collections.abc.Sequence[torch.Tensor]]`, *необязательный*) : Аудио или пакет аудио для подготовки. Каждое аудио может быть массивом NumPy или тензором PyTorch. В случае массива NumPy/тензора PyTorch каждое аудио должно иметь форму (C, T), где C — количество каналов, а T — длина выборки аудио.

return_mm_token_type_ids (`bool`, *kwargs*) : Нужно ли возвращать идентификаторы типов мультимодальных токенов, указывающие на позиции мультимодальных плейсхолдер-токенов.

return_text_replacement_offsets (`bool`, *kwargs*) : Нужно ли возвращать смещения символов для каждого мультимодального плейсхолдера и его замены.

return_tensors (`str` или [TensorType](/docs/transformers/v5.23.0/ru/internal/file_utils#transformers.TensorType), *optional*) : Если задано, возвращает тензоры конкретного фреймворка. Допустимые значения:  - `'pt'`: возвращает объекты `torch.Tensor` PyTorch. - `'np'`: возвращает объекты `np.ndarray` NumPy.

- ****kwargs** ([ProcessingKwargs](/docs/transformers/v5.23.0/ru/main_classes/processors#transformers.ProcessingKwargs), *optional*) : Дополнительные параметры обработки для каждой модальности (текст, изображения, видео, аудио). Специфичные для модели параметры перечислены выше; полный список поддерживаемых аргументов см. в классе TypedDict.

## FlavaImageProcessor[[transformers.FlavaImageProcessor]]

#### transformers.FlavaImageProcessor[[transformers.FlavaImageProcessor]]

```python
transformers.FlavaImageProcessor(**kwargs: *<class 'transformers.models.flava.image_processing_flava.FlavaImageProcessorKwargs'>)
```

[Источник](https://github.com/huggingface/transformers/blob/v5.23.0/src/transformers/models/flava/image_processing_flava.py#L213)

**Параметры:**

do_convert_rgb (`bool`, *kwargs*, *необязательный*) : Преобразовать ли изображение в RGB.

do_resize (`bool`, *kwargs*, *optional*, по умолчанию `True`) : Нужно ли изменять размер изображения.

size (`Annotated[int | list[int] | tuple[int, ...] | dict[str, int] | None, None]`, *kwargs*, по умолчанию `{'height' : 224, 'width': 224}`): Описывает максимальные размеры входных данных для модели.

default_to_square (`bool`, *kwargs*, *optional*, по умолчанию `True`) : Использовать ли квадратное изображение по умолчанию при изменении размера, если size является int.

crop_size (`Annotated[int | list[int] | tuple[int, ...] | dict[str, int] | None, None]`, *kwargs*, по умолчанию `{'height' : 224, 'width': 224}`): Размер выходного изображения после применения `center_crop`.

resample (`Annotated[Union[int, PILImageResampling, NoneType], None]`, *kwargs*, по умолчанию `3`) : Фильтр ресемплинга, используемый при изменении размера изображения. Может быть одним из значений перечисления `PILImageResampling`. Влияет только в том случае, если `do_resize` установлено в `True`.

do_rescale (`bool`, *kwargs*, *optional*, по умолчанию `True`) : Нужно ли масштабировать изображение.

rescale_factor (`float`, *kwargs*, *optional*, по умолчанию `0.00392156862745098`) : Коэффициент масштабирования для изменения масштаба изображения, если `do_rescale` установлен в `True`.

do_normalize (`bool`, *kwargs*, *optional*, по умолчанию `True`) : Нужно ли нормализовать изображение.

image_mean (`Union[float, list[float], tuple[float, ...]]`, *kwargs*, *optional*, по умолчанию `[0.48145466, 0.4578275, 0.40821073]`) : Среднее значение изображения для нормализации. Влияет только в том случае, если `do_normalize` установлено в `True`.

image_std (`Union[float, list[float], tuple[float, ...]]`, *kwargs*, *optional*, по умолчанию `[0.26862954, 0.26130258, 0.27577711]`) : Стандартное отклонение изображения, используемое для нормализации. Влияет только в том случае, если `do_normalize` установлено в `True`.

do_pad (`bool`, *kwargs*, *необязательный*) : Указывает, нужно ли выравнивать изображение. Выравнивание выполняется либо до максимального размера в батче, либо до фиксированного квадратного размера для каждого изображения. Конкретная стратегия выравнивания зависит от модели.

pad_size (`Annotated[int | list[int] | tuple[int, ...] | dict[str, int] | None, None]`, *kwargs*) : Размер в формате `{"height": int, "width" int}`, до которого следует дополнить изображения. Должен быть больше любого размера изображения, переданного для предобработки. Если `pad_size` не указан, изображения будут дополнены до наибольшей высоты и ширины в батче. Применяется только при `do_pad=True.`

do_center_crop (`bool`, *kwargs*, *optional*, по умолчанию `True`) : Нужно ли выполнять центрированный кроп изображения.

data_format (`Union[str, ~image_utils.ChannelDimension]`, *kwargs*, *необязательный*) : Поддерживается только `ChannelDimension.FIRST`. Добавлено для совместимости с медленными процессорами.

input_data_format (`Union[str, ~image_utils.ChannelDimension]`, *kwargs*, *optional*) : Формат размерности каналов для входного изображения. Если не задано, формат размерности каналов определяется по входному изображению. Может быть одним из: - `"channels_first"` или `ChannelDimension.FIRST`: изображение в формате (num_channels, height, width). - `"channels_last"` или `ChannelDimension.LAST`: изображение в формате (height, width, num_channels). - `"none"` или `ChannelDimension.NONE`: изображение в формате (height, width).

device (`Annotated[Union[str, torch.device, NoneType], None]`, *kwargs*) : Устройство для обработки видео. Если не задано, устройство определяется на основе входных видео.

return_tensors (`Annotated[str | ~utils.generic.TensorType | None, None]`, *kwargs*) : Возвращает стопку тензоров, если установлено значение `'pt'`, иначе возвращает список тензоров.

disable_grouping (`bool`, *kwargs*, *optional*) : Указывает, следует ли отключить группировку изображений по размеру для их индивидуальной обработки, а не пачками. Если значение равно None, оно будет установлено в True, если изображения находятся на CPU, и в False в противном случае. Этот выбор основан на эмпирических наблюдениях, подробно описанных здесь: https://github.com/huggingface/transformers/pull/38157

image_seq_length (`int`, *kwargs*, *необязательный*) : Количество токенов изображения, используемых для каждого изображения во входных данных. Добавлено для обратной совместимости, но в будущих моделях это значение следует задавать как атрибут процессора.

return_image_mask (`bool`, *kwargs*, *необязательный*, по умолчанию `False`) : Определяет, следует ли возвращать маску изображения. Может быть переопределён параметром `return_image_mask` в `preprocess`.

input_size_patches (`int`, *kwargs*, *optional*, по умолчанию `14`) : Количество патчей на изображении по высоте и ширине. 14x14 = 196 патчей всего. Может быть переопределено параметром `input_size_patches` в `preprocess`.

total_mask_patches (`int`, *kwargs*, *optional*, по умолчанию `75`) : Общее количество патчей, которые должны быть замаскированы. Может быть переопределено параметром `total_mask_patches` в `preprocess`.

mask_group_min_patches (`int`, *kwargs*, *optional*, по умолчанию `16`) : Минимальное количество патчей, которые должны быть замаскированы. Может быть переопределено параметром `mask_group_min_patches` в `preprocess`.

mask_group_max_patches (`int`, *kwargs*, *optional*) : Максимальное количество патчей, которые должны быть замаскированы. Может быть переопределено параметром `mask_group_max_patches` в `preprocess`.

mask_group_min_aspect_ratio (`float`, *kwargs*, *optional*, по умолчанию `0.3`) : Минимальное соотношение сторон окна маски. Может быть переопределено параметром `mask_group_min_aspect_ratio` в `preprocess`.

mask_group_max_aspect_ratio (`float`, *kwargs*, *optional*) : Максимальное соотношение сторон окна маски. Может быть переопределено параметром `mask_group_max_aspect_ratio` в `preprocess`.

return_codebook_pixels (`bool`, *kwargs*, *optional*, по умолчанию `False`) : Возвращать ли пиксельные значения кодовой книги.

codebook_do_resize (`bool`, *kwargs*, *optional*, по умолчанию `True`) : Указывает, следует ли изменять размер входных данных для codebook до определённого значения. Может быть переопределено параметром `codebook_do_resize` в `preprocess`. `codebook_size`.

codebook_size (`dict[str, *kwargs*, int]`, *необязательный*, по умолчанию `{"height" : 224, "width": 224}`): Изменяет размер входных данных для codebook до указанного размера. Может быть переопределён параметром `codebook_size` в `preprocess`.

codebook_resample (`PILImageResampling`, *kwargs*, *необязательный*, по умолчанию `PILImageResampling.LANCZOS`) : Фильтр ресемплинга, используемый при изменении размера изображения кодовой книги. В torchvision < 0.27 LANCZOS не поддерживается для тензоров torch, поэтому в качестве ближайшей альтернативы используется BICUBIC. Может быть переопределён параметром `codebook_resample` в `preprocess`.

codebook_do_center_crop (`bool`, *kwargs*, *optional*, по умолчанию `True`) : Нужно ли обрезать вход для codebook по центру. Если размер входа меньше `codebook_crop_size` по любому краю, изображение дополняется нулями, а затем обрезается по центру. Может быть переопределено параметром `codebook_do_center_crop` в `preprocess`.

codebook_crop_size (`dict[str, *kwargs*, int]`, *необязательный*, по умолчанию `{"height" : 224, "width": 224}`): Желаемый размер вывода для входа в codebook при применении центрированного кадрирования. Может быть переопределён параметром `codebook_crop_size` в `preprocess`.

codebook_do_rescale (`bool`, *kwargs*, *optional*, по умолчанию `True`) : Указывает, следует ли перемасштабировать входные данные для кодовой книги с использованием заданного масштаба `codebook_rescale_factor`. Может быть переопределено параметром `codebook_do_rescale` в `preprocess`.

codebook_rescale_factor (`int`, *kwargs* или `float`, *optional*, по умолчанию `1/255`) : Определяет коэффициент масштабирования, используемый при перемасштабировании изображения кодовой книги. Может быть переопределён параметром `codebook_rescale_factor` в `preprocess`.

codebook_do_map_pixels (`bool`, *kwargs*, *optional*, по умолчанию `True`) : Указывает, следует ли отображать значения пикселей входных данных кодовой книги в (1 - 2e)x + e. Может быть переопределено параметром `codebook_do_map_pixels` в `preprocess`.

codebook_do_normalize (`bool`, *kwargs*, *optional*, по умолчанию `True`) : Нужно ли нормализовать вход для codebook с помощью `codebook_image_mean` и `codebook_image_std`. Может быть переопределено параметром `codebook_do_normalize` в `preprocess`.

codebook_image_mean (`Optional[Union[float, *kwargs*, Iterable[float]]]`, *необязательный*, по умолчанию `[0, 0, 0]`) : Последовательность средних значений для каждого канала, используемая при нормализации изображений для codebook. Может быть переопределена параметром `codebook_image_mean` в `preprocess`.

codebook_image_std (`Optional[Union[float, *kwargs*, Iterable[float]]]`, *необязательный*, по умолчанию `[0.5, 0.5, 0.5]`) : Последовательность стандартных отклонений для каждого канала, используемая при нормализации изображений для codebook. Может быть переопределена параметром `codebook_image_std` в `preprocess`.

Создаёт процессор изображений FlavaImageProcessor.

#### preprocess[[transformers.FlavaImageProcessor.preprocess]]

```python
preprocess(images: typing.Union[ForwardRef('PIL.Image.Image'), numpy.ndarray, ForwardRef('torch.Tensor'), list['PIL.Image.Image'], list[numpy.ndarray], list['torch.Tensor']], **kwargs: *<class 'transformers.models.flava.image_processing_flava.FlavaImageProcessorKwargs'>)
```

[Источник](https://github.com/huggingface/transformers/blob/v5.23.0/src/transformers/models/flava/image_processing_flava.py#L250)

**Параметры:**

images (`Union[PIL.Image.Image, numpy.ndarray, torch.Tensor, list[PIL.Image.Image], list[numpy.ndarray], list[torch.Tensor]]`) : Изображение для предобработки. Ожидается одно изображение или пакет изображений со значениями пикселей в диапазоне от 0 до 255. Если передаются изображения со значениями пикселей в диапазоне от 0 до 1, установите `do_rescale=False`.

do_convert_rgb (`bool`, *kwargs*, *необязательный*) : Преобразовать ли изображение в RGB.

do_resize (`bool`, *kwargs*, *необязательный*) : Указывает, нужно ли изменить размер изображения.

size (`Annotated[int | list[int] | tuple[int, ...] | dict[str, int] | None, None]`, *kwargs*) : Описывает максимальные размеры входных данных для модели.

default_to_square (`bool`, *kwargs*, *необязательный*) : Указывает, следует ли по умолчанию использовать квадратное изображение при изменении размера, если size задан как int.

crop_size (`Annotated[int | list[int] | tuple[int, ...] | dict[str, int] | None, None]`, *kwargs*) : Размер выходного изображения после применения `center_crop`.

resample (`Annotated[Union[int, PILImageResampling, NoneType], None]`, *kwargs*) : Фильтр ресемплинга, используемый при изменении размера изображения. Может быть одним из значений перечисления `PILImageResampling`. Действует только при установке `do_resize` в `True`.

do_rescale (`bool`, *kwargs*, *необязательный*) : Нужно ли масштабировать изображение.

rescale_factor (`float`, *kwargs*, *optional*) : Коэффициент масштабирования для изменения размера изображения, если `do_rescale` установлен в `True`.

do_normalize (`bool`, *kwargs*, *необязательный*) : Нужно ли нормализовать изображение.

image_mean (`Union[float, list[float], tuple[float, ...]]`, *kwargs*, *optional*) : Среднее значение изображения, используемое для нормализации. Влияет только в том случае, если `do_normalize` установлено в `True`.

image_std (`Union[float, list[float], tuple[float, ...]]`, *kwargs*, *optional*) : Стандартное отклонение изображения, используемое для нормализации. Влияет только в том случае, если `do_normalize` установлено в `True`.

do_pad (`bool`, *kwargs*, *необязательный*) : Указывает, нужно ли выравнивать изображение. Выравнивание выполняется либо до максимального размера в батче, либо до фиксированного квадратного размера для каждого изображения. Конкретная стратегия выравнивания зависит от модели.

pad_size (`Annotated[int | list[int] | tuple[int, ...] | dict[str, int] | None, None]`, *kwargs*) : Размер в формате `{"height": int, "width" int}`, до которого следует дополнить изображения. Должен быть больше любого размера изображения, переданного для предобработки. Если `pad_size` не указан, изображения будут дополнены до наибольшей высоты и ширины в батче. Применяется только при `do_pad=True.`

do_center_crop (`bool`, *kwargs*, *optional*) : Центрировать ли изображение при обрезке.

data_format (`Union[str, ~image_utils.ChannelDimension]`, *kwargs*, *необязательный*) : Поддерживается только `ChannelDimension.FIRST`. Добавлено для совместимости с медленными процессорами.

input_data_format (`Union[str, ~image_utils.ChannelDimension]`, *kwargs*, *optional*) : Формат размерности каналов для входного изображения. Если не задано, формат размерности каналов определяется по входному изображению. Может быть одним из: - `"channels_first"` или `ChannelDimension.FIRST`: изображение в формате (num_channels, height, width). - `"channels_last"` или `ChannelDimension.LAST`: изображение в формате (height, width, num_channels). - `"none"` или `ChannelDimension.NONE`: изображение в формате (height, width).

device (`Annotated[Union[str, torch.device, NoneType], None]`, *kwargs*) : Устройство для обработки видео. Если не задано, устройство определяется на основе входных видео.

return_tensors (`Annotated[str | ~utils.generic.TensorType | None, None]`, *kwargs*) : Возвращает стопку тензоров, если установлено значение `'pt'`, иначе возвращает список тензоров.

disable_grouping (`bool`, *kwargs*, *optional*) : Указывает, следует ли отключить группировку изображений по размеру для их индивидуальной обработки, а не пачками. Если значение равно None, оно будет установлено в True, если изображения находятся на CPU, и в False в противном случае. Этот выбор основан на эмпирических наблюдениях, подробно описанных здесь: https://github.com/huggingface/transformers/pull/38157

image_seq_length (`int`, *kwargs*, *необязательный*) : Количество токенов изображения, используемых для каждого изображения во входных данных. Добавлено для обратной совместимости, но в будущих моделях это значение следует задавать как атрибут процессора.

return_image_mask (`bool`, *kwargs*, *необязательный*, по умолчанию `False`) : Определяет, следует ли возвращать маску изображения. Может быть переопределён параметром `return_image_mask` в `preprocess`.

input_size_patches (`int`, *kwargs*, *optional*, по умолчанию `14`) : Количество патчей на изображении по высоте и ширине. 14x14 = 196 патчей всего. Может быть переопределено параметром `input_size_patches` в `preprocess`.

total_mask_patches (`int`, *kwargs*, *optional*, по умолчанию `75`) : Общее количество патчей, которые должны быть замаскированы. Может быть переопределено параметром `total_mask_patches` в `preprocess`.

mask_group_min_patches (`int`, *kwargs*, *optional*, по умолчанию `16`) : Минимальное количество патчей, которые должны быть замаскированы. Может быть переопределено параметром `mask_group_min_patches` в `preprocess`.

mask_group_max_patches (`int`, *kwargs*, *optional*) : Максимальное количество патчей, которые должны быть замаскированы. Может быть переопределено параметром `mask_group_max_patches` в `preprocess`.

mask_group_min_aspect_ratio (`float`, *kwargs*, *optional*, по умолчанию `0.3`) : Минимальное соотношение сторон окна маски. Может быть переопределено параметром `mask_group_min_aspect_ratio` в `preprocess`.

mask_group_max_aspect_ratio (`float`, *kwargs*, *optional*) : Максимальное соотношение сторон окна маски. Может быть переопределено параметром `mask_group_max_aspect_ratio` в `preprocess`.

return_codebook_pixels (`bool`, *kwargs*, *optional*, по умолчанию `False`) : Возвращать ли пиксельные значения кодовой книги.

codebook_do_resize (`bool`, *kwargs*, *optional*, по умолчанию `True`) : Указывает, следует ли изменять размер входных данных для codebook до определённого значения. Может быть переопределено параметром `codebook_do_resize` в `preprocess`. `codebook_size`.

codebook_size (`dict[str, *kwargs*, int]`, *необязательный*, по умолчанию `{"height" : 224, "width": 224}`): Изменяет размер входных данных для codebook до указанного размера. Может быть переопределён параметром `codebook_size` в `preprocess`.

codebook_resample (`PILImageResampling`, *kwargs*, *необязательный*, по умолчанию `PILImageResampling.LANCZOS`) : Фильтр ресемплинга, используемый при изменении размера изображения кодовой книги. В torchvision < 0.27 LANCZOS не поддерживается для тензоров torch, поэтому в качестве ближайшей альтернативы используется BICUBIC. Может быть переопределён параметром `codebook_resample` в `preprocess`.

codebook_do_center_crop (`bool`, *kwargs*, *optional*, по умолчанию `True`) : Нужно ли обрезать вход для codebook по центру. Если размер входа меньше `codebook_crop_size` по любому краю, изображение дополняется нулями, а затем обрезается по центру. Может быть переопределено параметром `codebook_do_center_crop` в `preprocess`.

codebook_crop_size (`dict[str, *kwargs*, int]`, *необязательный*, по умолчанию `{"height" : 224, "width": 224}`): Желаемый размер вывода для входа в codebook при применении центрированного кадрирования. Может быть переопределён параметром `codebook_crop_size` в `preprocess`.

codebook_do_rescale (`bool`, *kwargs*, *optional*, по умолчанию `True`) : Указывает, следует ли перемасштабировать входные данные для кодовой книги с использованием заданного масштаба `codebook_rescale_factor`. Может быть переопределено параметром `codebook_do_rescale` в `preprocess`.

codebook_rescale_factor (`int`, *kwargs* или `float`, *optional*, по умолчанию `1/255`) : Определяет коэффициент масштабирования, используемый при перемасштабировании изображения кодовой книги. Может быть переопределён параметром `codebook_rescale_factor` в `preprocess`.

codebook_do_map_pixels (`bool`, *kwargs*, *optional*, по умолчанию `True`) : Указывает, следует ли отображать значения пикселей входных данных кодовой книги в (1 - 2e)x + e. Может быть переопределено параметром `codebook_do_map_pixels` в `preprocess`.

codebook_do_normalize (`bool`, *kwargs*, *optional*, по умолчанию `True`) : Нужно ли нормализовать вход для codebook с помощью `codebook_image_mean` и `codebook_image_std`. Может быть переопределено параметром `codebook_do_normalize` в `preprocess`.

codebook_image_mean (`Optional[Union[float, *kwargs*, Iterable[float]]]`, *необязательный*, по умолчанию `[0, 0, 0]`) : Последовательность средних значений для каждого канала, используемая при нормализации изображений для codebook. Может быть переопределена параметром `codebook_image_mean` в `preprocess`.

codebook_image_std (`Optional[Union[float, *kwargs*, Iterable[float]]]`, *необязательный*, по умолчанию `[0.5, 0.5, 0.5]`) : Последовательность стандартных отклонений для каждого канала, используемая при нормализации изображений для codebook. Может быть переопределена параметром `codebook_image_std` в `preprocess`.

**Возвращает:** `~image_processing_base.BatchFeature`

- **data** (`dict`) — Словарь списков/массивов/тензоров, возвращаемый методом __call__ ('pixel_values' и т. д.).
- **tensor_type** (`Union[None, str, TensorType]`, *необязательный*) -- Здесь можно указать tensor_type, чтобы при инициализации преобразовать списки целых чисел в тензоры PyTorch/Numpy.

## FlavaImageProcessorPil[[transformers.FlavaImageProcessorPil]]

#### transformers.FlavaImageProcessorPil[[transformers.FlavaImageProcessorPil]]

```python
transformers.FlavaImageProcessorPil(**kwargs: *<class 'transformers.models.flava.image_processing_pil_flava.FlavaImageProcessorKwargs'>)
```

[Источник](https://github.com/huggingface/transformers/blob/v5.23.0/src/transformers/models/flava/image_processing_pil_flava.py#L227)

**Параметры:**

do_convert_rgb (`bool`, *kwargs*, *необязательный*) : Преобразовать ли изображение в RGB.

do_resize (`bool`, *kwargs*, *optional*, по умолчанию `True`) : Нужно ли изменять размер изображения.

size (`Annotated[int | list[int] | tuple[int, ...] | dict[str, int] | None, None]`, *kwargs*, по умолчанию `{'height' : 224, 'width': 224}`): Описывает максимальные размеры входных данных для модели.

default_to_square (`bool`, *kwargs*, *optional*, по умолчанию `True`) : Использовать ли квадратное изображение по умолчанию при изменении размера, если size является int.

crop_size (`Annotated[int | list[int] | tuple[int, ...] | dict[str, int] | None, None]`, *kwargs*, по умолчанию `{'height' : 224, 'width': 224}`): Размер выходного изображения после применения `center_crop`.

resample (`Annotated[Union[int, PILImageResampling, NoneType], None]`, *kwargs*, по умолчанию `3`) : Фильтр ресемплинга, используемый при изменении размера изображения. Может быть одним из значений перечисления `PILImageResampling`. Влияет только в том случае, если `do_resize` установлено в `True`.

do_rescale (`bool`, *kwargs*, *optional*, по умолчанию `True`) : Нужно ли масштабировать изображение.

rescale_factor (`float`, *kwargs*, *optional*, по умолчанию `0.00392156862745098`) : Коэффициент масштабирования для изменения масштаба изображения, если `do_rescale` установлен в `True`.

do_normalize (`bool`, *kwargs*, *optional*, по умолчанию `True`) : Нужно ли нормализовать изображение.

image_mean (`Union[float, list[float], tuple[float, ...]]`, *kwargs*, *optional*, по умолчанию `[0.48145466, 0.4578275, 0.40821073]`) : Среднее значение изображения для нормализации. Влияет только в том случае, если `do_normalize` установлено в `True`.

image_std (`Union[float, list[float], tuple[float, ...]]`, *kwargs*, *optional*, по умолчанию `[0.26862954, 0.26130258, 0.27577711]`) : Стандартное отклонение изображения, используемое для нормализации. Влияет только в том случае, если `do_normalize` установлено в `True`.

do_pad (`bool`, *kwargs*, *необязательный*) : Указывает, нужно ли выравнивать изображение. Выравнивание выполняется либо до максимального размера в батче, либо до фиксированного квадратного размера для каждого изображения. Конкретная стратегия выравнивания зависит от модели.

pad_size (`Annotated[int | list[int] | tuple[int, ...] | dict[str, int] | None, None]`, *kwargs*) : Размер в формате `{"height": int, "width" int}`, до которого следует дополнить изображения. Должен быть больше любого размера изображения, переданного для предобработки. Если `pad_size` не указан, изображения будут дополнены до наибольшей высоты и ширины в батче. Применяется только при `do_pad=True.`

do_center_crop (`bool`, *kwargs*, *optional*, по умолчанию `True`) : Нужно ли выполнять центрированный кроп изображения.

data_format (`Union[str, ~image_utils.ChannelDimension]`, *kwargs*, *необязательный*) : Поддерживается только `ChannelDimension.FIRST`. Добавлено для совместимости с медленными процессорами.

input_data_format (`Union[str, ~image_utils.ChannelDimension]`, *kwargs*, *optional*) : Формат размерности каналов для входного изображения. Если не задано, формат размерности каналов определяется по входному изображению. Может быть одним из: - `"channels_first"` или `ChannelDimension.FIRST`: изображение в формате (num_channels, height, width). - `"channels_last"` или `ChannelDimension.LAST`: изображение в формате (height, width, num_channels). - `"none"` или `ChannelDimension.NONE`: изображение в формате (height, width).

device (`Annotated[Union[str, torch.device, NoneType], None]`, *kwargs*) : Устройство для обработки видео. Если не задано, устройство определяется на основе входных видео.

return_tensors (`Annotated[str | ~utils.generic.TensorType | None, None]`, *kwargs*) : Возвращает стопку тензоров, если установлено значение `'pt'`, иначе возвращает список тензоров.

disable_grouping (`bool`, *kwargs*, *optional*) : Указывает, следует ли отключить группировку изображений по размеру для их индивидуальной обработки, а не пачками. Если значение равно None, оно будет установлено в True, если изображения находятся на CPU, и в False в противном случае. Этот выбор основан на эмпирических наблюдениях, подробно описанных здесь: https://github.com/huggingface/transformers/pull/38157

image_seq_length (`int`, *kwargs*, *необязательный*) : Количество токенов изображения, используемых для каждого изображения во входных данных. Добавлено для обратной совместимости, но в будущих моделях это значение следует задавать как атрибут процессора.

return_image_mask (`bool`, *kwargs*, *необязательный*, по умолчанию `False`) : Определяет, следует ли возвращать маску изображения. Может быть переопределён параметром `return_image_mask` в `preprocess`.

input_size_patches (`int`, *kwargs*, *optional*, по умолчанию `14`) : Количество патчей на изображении по высоте и ширине. 14x14 = 196 патчей всего. Может быть переопределено параметром `input_size_patches` в `preprocess`.

total_mask_patches (`int`, *kwargs*, *optional*, по умолчанию `75`) : Общее количество патчей, которые должны быть замаскированы. Может быть переопределено параметром `total_mask_patches` в `preprocess`.

mask_group_min_patches (`int`, *kwargs*, *optional*, по умолчанию `16`) : Минимальное количество патчей, которые должны быть замаскированы. Может быть переопределено параметром `mask_group_min_patches` в `preprocess`.

mask_group_max_patches (`int`, *kwargs*, *optional*) : Максимальное количество патчей, которые должны быть замаскированы. Может быть переопределено параметром `mask_group_max_patches` в `preprocess`.

mask_group_min_aspect_ratio (`float`, *kwargs*, *optional*, по умолчанию `0.3`) : Минимальное соотношение сторон окна маски. Может быть переопределено параметром `mask_group_min_aspect_ratio` в `preprocess`.

mask_group_max_aspect_ratio (`float`, *kwargs*, *optional*) : Максимальное соотношение сторон окна маски. Может быть переопределено параметром `mask_group_max_aspect_ratio` в `preprocess`.

return_codebook_pixels (`bool`, *kwargs*, *optional*, по умолчанию `False`) : Возвращать ли пиксельные значения кодовой книги.

codebook_do_resize (`bool`, *kwargs*, *optional*, по умолчанию `True`) : Указывает, следует ли изменять размер входных данных для codebook до определённого значения. Может быть переопределено параметром `codebook_do_resize` в `preprocess`. `codebook_size`.

codebook_size (`dict[str, *kwargs*, int]`, *необязательный*, по умолчанию `{"height" : 224, "width": 224}`): Изменяет размер входных данных для codebook до указанного размера. Может быть переопределён параметром `codebook_size` в `preprocess`.

codebook_resample (`PILImageResampling`, *kwargs*, *необязательный*, по умолчанию `PILImageResampling.LANCZOS`) : Фильтр ресемплинга, используемый при изменении размера изображения кодовой книги. В torchvision < 0.27 LANCZOS не поддерживается для тензоров torch, поэтому в качестве ближайшей альтернативы используется BICUBIC. Может быть переопределён параметром `codebook_resample` в `preprocess`.

codebook_do_center_crop (`bool`, *kwargs*, *optional*, по умолчанию `True`) : Нужно ли обрезать вход для codebook по центру. Если размер входа меньше `codebook_crop_size` по любому краю, изображение дополняется нулями, а затем обрезается по центру. Может быть переопределено параметром `codebook_do_center_crop` в `preprocess`.

codebook_crop_size (`dict[str, *kwargs*, int]`, *необязательный*, по умолчанию `{"height" : 224, "width": 224}`): Желаемый размер вывода для входа в codebook при применении центрированного кадрирования. Может быть переопределён параметром `codebook_crop_size` в `preprocess`.

codebook_do_rescale (`bool`, *kwargs*, *optional*, по умолчанию `True`) : Указывает, следует ли перемасштабировать входные данные для кодовой книги с использованием заданного масштаба `codebook_rescale_factor`. Может быть переопределено параметром `codebook_do_rescale` в `preprocess`.

codebook_rescale_factor (`int`, *kwargs* или `float`, *optional*, по умолчанию `1/255`) : Определяет коэффициент масштабирования, используемый при перемасштабировании изображения кодовой книги. Может быть переопределён параметром `codebook_rescale_factor` в `preprocess`.

codebook_do_map_pixels (`bool`, *kwargs*, *optional*, по умолчанию `True`) : Указывает, следует ли отображать значения пикселей входных данных кодовой книги в (1 - 2e)x + e. Может быть переопределено параметром `codebook_do_map_pixels` в `preprocess`.

codebook_do_normalize (`bool`, *kwargs*, *optional*, по умолчанию `True`) : Нужно ли нормализовать вход для codebook с помощью `codebook_image_mean` и `codebook_image_std`. Может быть переопределено параметром `codebook_do_normalize` в `preprocess`.

codebook_image_mean (`Optional[Union[float, *kwargs*, Iterable[float]]]`, *необязательный*, по умолчанию `[0, 0, 0]`) : Последовательность средних значений для каждого канала, используемая при нормализации изображений для codebook. Может быть переопределена параметром `codebook_image_mean` в `preprocess`.

codebook_image_std (`Optional[Union[float, *kwargs*, Iterable[float]]]`, *необязательный*, по умолчанию `[0.5, 0.5, 0.5]`) : Последовательность стандартных отклонений для каждого канала, используемая при нормализации изображений для codebook. Может быть переопределена параметром `codebook_image_std` в `preprocess`.

Создаёт процессор изображений FlavaImageProcessor.

#### preprocess[[transformers.FlavaImageProcessorPil.preprocess]]

```python
preprocess(images: typing.Union[ForwardRef('PIL.Image.Image'), numpy.ndarray, ForwardRef('torch.Tensor'), list['PIL.Image.Image'], list[numpy.ndarray], list['torch.Tensor']], **kwargs: *<class 'transformers.models.flava.image_processing_pil_flava.FlavaImageProcessorKwargs'>)
```

[Источник](https://github.com/huggingface/transformers/blob/v5.23.0/src/transformers/models/flava/image_processing_pil_flava.py#L264)

**Параметры:**

images (`Union[PIL.Image.Image, numpy.ndarray, torch.Tensor, list[PIL.Image.Image], list[numpy.ndarray], list[torch.Tensor]]`) : Изображение для предобработки. Ожидается одно изображение или пакет изображений со значениями пикселей в диапазоне от 0 до 255. Если передаются изображения со значениями пикселей в диапазоне от 0 до 1, установите `do_rescale=False`.

do_convert_rgb (`bool`, *kwargs*, *необязательный*) : Преобразовать ли изображение в RGB.

do_resize (`bool`, *kwargs*, *необязательный*) : Указывает, нужно ли изменить размер изображения.

size (`Annotated[int | list[int] | tuple[int, ...] | dict[str, int] | None, None]`, *kwargs*) : Описывает максимальные размеры входных данных для модели.

default_to_square (`bool`, *kwargs*, *необязательный*) : Указывает, следует ли по умолчанию использовать квадратное изображение при изменении размера, если size задан как int.

crop_size (`Annotated[int | list[int] | tuple[int, ...] | dict[str, int] | None, None]`, *kwargs*) : Размер выходного изображения после применения `center_crop`.

resample (`Annotated[Union[int, PILImageResampling, NoneType], None]`, *kwargs*) : Фильтр ресемплинга, используемый при изменении размера изображения. Может быть одним из значений перечисления `PILImageResampling`. Действует только при установке `do_resize` в `True`.

do_rescale (`bool`, *kwargs*, *необязательный*) : Нужно ли масштабировать изображение.

rescale_factor (`float`, *kwargs*, *optional*) : Коэффициент масштабирования для изменения размера изображения, если `do_rescale` установлен в `True`.

do_normalize (`bool`, *kwargs*, *необязательный*) : Нужно ли нормализовать изображение.

image_mean (`Union[float, list[float], tuple[float, ...]]`, *kwargs*, *optional*) : Среднее значение изображения, используемое для нормализации. Влияет только в том случае, если `do_normalize` установлено в `True`.

image_std (`Union[float, list[float], tuple[float, ...]]`, *kwargs*, *optional*) : Стандартное отклонение изображения, используемое для нормализации. Влияет только в том случае, если `do_normalize` установлено в `True`.

do_pad (`bool`, *kwargs*, *необязательный*) : Указывает, нужно ли выравнивать изображение. Выравнивание выполняется либо до максимального размера в батче, либо до фиксированного квадратного размера для каждого изображения. Конкретная стратегия выравнивания зависит от модели.

pad_size (`Annotated[int | list[int] | tuple[int, ...] | dict[str, int] | None, None]`, *kwargs*) : Размер в формате `{"height": int, "width" int}`, до которого следует дополнить изображения. Должен быть больше любого размера изображения, переданного для предобработки. Если `pad_size` не указан, изображения будут дополнены до наибольшей высоты и ширины в батче. Применяется только при `do_pad=True.`

do_center_crop (`bool`, *kwargs*, *optional*) : Центрировать ли изображение при обрезке.

data_format (`Union[str, ~image_utils.ChannelDimension]`, *kwargs*, *необязательный*) : Поддерживается только `ChannelDimension.FIRST`. Добавлено для совместимости с медленными процессорами.

input_data_format (`Union[str, ~image_utils.ChannelDimension]`, *kwargs*, *optional*) : Формат размерности каналов для входного изображения. Если не задано, формат размерности каналов определяется по входному изображению. Может быть одним из: - `"channels_first"` или `ChannelDimension.FIRST`: изображение в формате (num_channels, height, width). - `"channels_last"` или `ChannelDimension.LAST`: изображение в формате (height, width, num_channels). - `"none"` или `ChannelDimension.NONE`: изображение в формате (height, width).

device (`Annotated[Union[str, torch.device, NoneType], None]`, *kwargs*) : Устройство для обработки видео. Если не задано, устройство определяется на основе входных видео.

return_tensors (`Annotated[str | ~utils.generic.TensorType | None, None]`, *kwargs*) : Возвращает стопку тензоров, если установлено значение `'pt'`, иначе возвращает список тензоров.

disable_grouping (`bool`, *kwargs*, *optional*) : Указывает, следует ли отключить группировку изображений по размеру для их индивидуальной обработки, а не пачками. Если значение равно None, оно будет установлено в True, если изображения находятся на CPU, и в False в противном случае. Этот выбор основан на эмпирических наблюдениях, подробно описанных здесь: https://github.com/huggingface/transformers/pull/38157

image_seq_length (`int`, *kwargs*, *необязательный*) : Количество токенов изображения, используемых для каждого изображения во входных данных. Добавлено для обратной совместимости, но в будущих моделях это значение следует задавать как атрибут процессора.

return_image_mask (`bool`, *kwargs*, *необязательный*, по умолчанию `False`) : Определяет, следует ли возвращать маску изображения. Может быть переопределён параметром `return_image_mask` в `preprocess`.

input_size_patches (`int`, *kwargs*, *optional*, по умолчанию `14`) : Количество патчей на изображении по высоте и ширине. 14x14 = 196 патчей всего. Может быть переопределено параметром `input_size_patches` в `preprocess`.

total_mask_patches (`int`, *kwargs*, *optional*, по умолчанию `75`) : Общее количество патчей, которые должны быть замаскированы. Может быть переопределено параметром `total_mask_patches` в `preprocess`.

mask_group_min_patches (`int`, *kwargs*, *optional*, по умолчанию `16`) : Минимальное количество патчей, которые должны быть замаскированы. Может быть переопределено параметром `mask_group_min_patches` в `preprocess`.

mask_group_max_patches (`int`, *kwargs*, *optional*) : Максимальное количество патчей, которые должны быть замаскированы. Может быть переопределено параметром `mask_group_max_patches` в `preprocess`.

mask_group_min_aspect_ratio (`float`, *kwargs*, *optional*, по умолчанию `0.3`) : Минимальное соотношение сторон окна маски. Может быть переопределено параметром `mask_group_min_aspect_ratio` в `preprocess`.

mask_group_max_aspect_ratio (`float`, *kwargs*, *optional*) : Максимальное соотношение сторон окна маски. Может быть переопределено параметром `mask_group_max_aspect_ratio` в `preprocess`.

return_codebook_pixels (`bool`, *kwargs*, *optional*, по умолчанию `False`) : Возвращать ли пиксельные значения кодовой книги.

codebook_do_resize (`bool`, *kwargs*, *optional*, по умолчанию `True`) : Указывает, следует ли изменять размер входных данных для codebook до определённого значения. Может быть переопределено параметром `codebook_do_resize` в `preprocess`. `codebook_size`.

codebook_size (`dict[str, *kwargs*, int]`, *необязательный*, по умолчанию `{"height" : 224, "width": 224}`): Изменяет размер входных данных для codebook до указанного размера. Может быть переопределён параметром `codebook_size` в `preprocess`.

codebook_resample (`PILImageResampling`, *kwargs*, *необязательный*, по умолчанию `PILImageResampling.LANCZOS`) : Фильтр ресемплинга, используемый при изменении размера изображения кодовой книги. В torchvision < 0.27 LANCZOS не поддерживается для тензоров torch, поэтому в качестве ближайшей альтернативы используется BICUBIC. Может быть переопределён параметром `codebook_resample` в `preprocess`.

codebook_do_center_crop (`bool`, *kwargs*, *optional*, по умолчанию `True`) : Нужно ли обрезать вход для codebook по центру. Если размер входа меньше `codebook_crop_size` по любому краю, изображение дополняется нулями, а затем обрезается по центру. Может быть переопределено параметром `codebook_do_center_crop` в `preprocess`.

codebook_crop_size (`dict[str, *kwargs*, int]`, *необязательный*, по умолчанию `{"height" : 224, "width": 224}`): Желаемый размер вывода для входа в codebook при применении центрированного кадрирования. Может быть переопределён параметром `codebook_crop_size` в `preprocess`.

codebook_do_rescale (`bool`, *kwargs*, *optional*, по умолчанию `True`) : Указывает, следует ли перемасштабировать входные данные для кодовой книги с использованием заданного масштаба `codebook_rescale_factor`. Может быть переопределено параметром `codebook_do_rescale` в `preprocess`.

codebook_rescale_factor (`int`, *kwargs* или `float`, *optional*, по умолчанию `1/255`) : Определяет коэффициент масштабирования, используемый при перемасштабировании изображения кодовой книги. Может быть переопределён параметром `codebook_rescale_factor` в `preprocess`.

codebook_do_map_pixels (`bool`, *kwargs*, *optional*, по умолчанию `True`) : Указывает, следует ли отображать значения пикселей входных данных кодовой книги в (1 - 2e)x + e. Может быть переопределено параметром `codebook_do_map_pixels` в `preprocess`.

codebook_do_normalize (`bool`, *kwargs*, *optional*, по умолчанию `True`) : Нужно ли нормализовать вход для codebook с помощью `codebook_image_mean` и `codebook_image_std`. Может быть переопределено параметром `codebook_do_normalize` в `preprocess`.

codebook_image_mean (`Optional[Union[float, *kwargs*, Iterable[float]]]`, *необязательный*, по умолчанию `[0, 0, 0]`) : Последовательность средних значений для каждого канала, используемая при нормализации изображений для codebook. Может быть переопределена параметром `codebook_image_mean` в `preprocess`.

codebook_image_std (`Optional[Union[float, *kwargs*, Iterable[float]]]`, *необязательный*, по умолчанию `[0.5, 0.5, 0.5]`) : Последовательность стандартных отклонений для каждого канала, используемая при нормализации изображений для codebook. Может быть переопределена параметром `codebook_image_std` в `preprocess`.

**Возвращает:** `~image_processing_base.BatchFeature`

- **data** (`dict`) — Словарь списков/массивов/тензоров, возвращаемый методом __call__ ('pixel_values' и т. д.).
- **tensor_type** (`Union[None, str, TensorType]`, *необязательный*) -- Здесь можно указать tensor_type, чтобы при инициализации преобразовать списки целых чисел в тензоры PyTorch/Numpy.

## FlavaForPreTraining[[transformers.FlavaForPreTraining]]

#### transformers.FlavaForPreTraining[[transformers.FlavaForPreTraining]]

```python
transformers.FlavaForPreTraining(config: FlavaConfig, image_codebook: typing.Optional[torch.nn.Module] = None)
```

[Источник](https://github.com/huggingface/transformers/blob/v5.23.0/src/transformers/models/flava/modeling_flava.py#L1502)

**Параметры:**

config ([FlavaConfig](/docs/transformers/v5.23.0/ru/model_doc/flava#transformers.FlavaConfig)) : Класс конфигурации модели со всеми параметрами модели. Инициализация с файлом конфигурации не загружает веса, связанные с моделью, только конфигурацию. Используйте метод [from_pretrained()](/docs/transformers/v5.23.0/ru/main_classes/model#transformers.PreTrainedModel.from_pretrained) для загрузки весов модели.

image_codebook (`torch.nn.Module`, *необязательный*) : Если передано, кодовая книга изображений будет установлена в это значение. В противном случае она будет инициализирована с использованием image_codebook_config, определённого в config, в качестве первого параметра.

Модель FLAVA для предварительного обучения, которая выводит потери, эмбеддинги, логиты и выходные данные трансформера.

Эта модель наследуется от [PreTrainedModel](/docs/transformers/v5.23.0/ru/main_classes/model#transformers.PreTrainedModel). Общие методы, которые библиотека реализует для всех своих моделей (например, загрузка или сохранение, изменение размера входных эмбеддингов, обрезка головок и т. д.), описаны в документации родительского класса.

Эта модель также является подклассом [torch.nn.Module](https://pytorch.org/docs/stable/nn.html#torch.nn.Module) в PyTorch. Используйте её как обычный модуль PyTorch и обращайтесь к документации PyTorch по всем вопросам, связанным с общим использованием и поведением.

#### forward[[transformers.FlavaForPreTraining.forward]]

```python
forward(input_ids: typing.Optional[torch.LongTensor] = None, input_ids_masked: typing.Optional[torch.LongTensor] = None, pixel_values: typing.Optional[torch.Tensor] = None, codebook_pixel_values: typing.Optional[torch.Tensor] = None, attention_mask: typing.Optional[torch.Tensor] = None, token_type_ids: typing.Optional[torch.Tensor] = None, bool_masked_pos: typing.Optional[torch.Tensor] = None, position_ids: typing.Optional[torch.LongTensor] = None, image_attention_mask: typing.Optional[torch.Tensor] = None, skip_unmasked_multimodal_encoder: bool | None = None, mlm_labels: typing.Optional[torch.Tensor] = None, mim_labels: typing.Optional[torch.Tensor] = None, itm_labels: typing.Optional[torch.Tensor] = None, output_attentions: bool | None = None, output_hidden_states: bool = True, return_dict: bool | None = None, return_loss: bool | None = None, **kwargs)
```

[Источник](https://github.com/huggingface/transformers/blob/v5.23.0/src/transformers/models/flava/modeling_flava.py#L1551)

**Параметры:**

input_ids (`torch.LongTensor` формы `(batch_size, text_seq_len)`) : Индексы токенов входной последовательности в словаре. Индексы можно получить с помощью [AutoTokenizer](/docs/transformers/v5.23.0/ru/model_doc/auto#transformers.AutoTokenizer). Подробности см. в [PreTrainedTokenizer.encode()](/docs/transformers/v5.23.0/ru/internal/tokenization_utils#transformers.PreTrainedTokenizerBase.encode) и [PreTrainedTokenizer.__call__()](/docs/transformers/v5.23.0/ru/internal/tokenization_utils#transformers.PreTrainedTokenizerBase.__call__). [Что такое входные идентификаторы?](../glossary#input-ids)

input_ids_masked (`torch.LongTensor` формы `(batch_size, text_seq_len)`) : Индексы токенов входной последовательности в словаре. Это замаскированная версия исходной задачи, используемая с MLM. Индексы можно получить с помощью [AutoTokenizer](/docs/transformers/v5.23.0/ru/model_doc/auto#transformers.AutoTokenizer) вместе с `DataCollatorForMaskedLanguageModeling`. Подробности см. в [PreTrainedTokenizer.encode()](/docs/transformers/v5.23.0/ru/internal/tokenization_utils#transformers.PreTrainedTokenizerBase.encode) и [PreTrainedTokenizer.__call__()](/docs/transformers/v5.23.0/ru/internal/tokenization_utils#transformers.PreTrainedTokenizerBase.__call__). [Что такое входные идентификаторы?](../glossary#input-ids)

pixel_values (`torch.Tensor` формы `(batch_size, num_channels, image_size, image_size)`, *необязательно*) : Тензоры, соответствующие входным изображениям. Значения пикселей можно получить с помощью [FlavaImageProcessor](/docs/transformers/v5.23.0/ru/model_doc/flava#transformers.FlavaImageProcessor). Подробности см. в [FlavaImageProcessor.__call__()](/docs/transformers/v5.23.0/ru/model_doc/molmo2#transformers.Molmo2ImageProcessor.__call__) ([FlavaProcessor](/docs/transformers/v5.23.0/ru/model_doc/flava#transformers.FlavaProcessor) использует [FlavaImageProcessor](/docs/transformers/v5.23.0/ru/model_doc/flava#transformers.FlavaImageProcessor) для обработки изображений).

codebook_pixel_values (`torch.Tensor` формы `(batch_size, num_image_patches, patch_size, patch_size, 3)`, *необязательный*) : Пиксельные значения для патчей изображений, используемые для вычисления меток кодовой книги изображений для моделирования с маскированием изображений.

attention_mask (`torch.Tensor` формы `(batch_size, sequence_length)`, *необязательный*) : Маска для предотвращения применения внимания к индексам токенов отсечки. Значения маски выбираются из `[0, 1]`:  - 1 для токенов, которые **не замаскированы**, - 0 для токенов, которые **замаскированы**.  [Что такое маски внимания?](../glossary#attention-mask)

token_type_ids (`torch.LongTensor` формы `(batch_size, text_seq_len)`, *необязательный*) : Индексы сегментных токенов для указания первой и второй частей входных данных. Индексы выбираются из `[0, 1]`: - 0 соответствует токену *предложения A*, - 1 соответствует токену *предложения B*. [Что такое идентификаторы типов токенов?](../glossary#token-type-ids)

bool_masked_pos (`torch.BoolTensor` формы `(batch_size, image_num_patches)`) : Булевы позиции маски. Указывает, какие патчи замаскированы (1), а какие нет (0).

position_ids (`torch.LongTensor` формы `(batch_size, sequence_length)`, *необязательно*) : Индексы позиций токенов каждого входного последовательности в позиционных эмбеддингах. Выбираются из диапазона `[0, config.n_positions - 1]`.  [Что такое position IDs?](../glossary#position-ids)

image_attention_mask (`torch.Tensor` формы `(batch_size, image_num_patches)`, *необязательный*) : Маска для исключения применения внимания к индексам токенов отступов, в частности для изображений. Значения маски выбираются из `[0, 1]`: - 1 для токенов, которые **не замаскированы**, - 0 для токенов, которые **замаскированы**. [Что такое маски внимания?](../glossary#attention-mask)

skip_unmasked_multimodal_encoder (`*bool*`, *необязательный*) : Пропускать любые вычисления для мультимодального энкодера для немаскированных входных данных. На данный момент предварительное обучение FLAVA не требует немаскированных мультимодальных эмбеддингов или выходов.

mlm_labels (`torch.LongTensor` формы `(batch_size, text_seq_len)`, *необязательный*) : Метки для вычисления функции потерь языковой и мультимодальной маскированной моделирования слева направо (предсказание следующего слова). Индексы должны находиться в диапазоне `[-100, 0, ..., text_config.vocab_size - 1]` (см. строку документации `input_ids`). Токены с индексами, установленными в `-100`, игнорируются (маскируются); функция потерь вычисляется только для токенов с метками в диапазоне `[0, ..., text_config.vocab_size - 1]`.

mim_labels (`torch.LongTensor` формы `(batch_size, image_num_patches)`, *необязательный*) : Метки для вычисления потерь маскированного моделирования изображений и мультимодальных данных. Индексы должны находиться в диапазоне `[-100, 0, ..., image_config.vocab_size - 1]`. Токены с индексами, установленными в `-100`, игнорируются (маскируются); потери вычисляются только для токенов с метками в диапазоне `[0, ..., image_config.vocab_size - 1]`. Если не переданы, они генерируются автоматически с использованием кодовой книги изображений, назначенной модели. По умолчанию используется [FlavaImageCodebook](/docs/transformers/v5.23.0/ru/model_doc/flava#transformers.FlavaImageCodebook). См. [FlavaImageCodebook](/docs/transformers/v5.23.0/ru/model_doc/flava#transformers.FlavaImageCodebook), чтобы понять, как генерировать mim_labels.

itm_labels (`torch.LongTensor` формы `(batch_size, 1)`, *необязательный*) : Метки для вычисления функции потерь соответствия изображения и текста. 0 означает, что пары не соответствуют друг другу, а 1 — что соответствуют. Пары с меткой 0 также пропускаются при вычислении MMM и глобальных контрастных потерь.

output_attentions (`bool`, *необязательный*) : Нужно ли возвращать тензоры внимания всех слоев внимания. Подробнее см. `attentions` в разделе возвращаемых тензоров.

output_hidden_states (`bool`, *необязательный*, по умолчанию `True`) : Возвращать ли скрытые состояния всех слоёв. Подробнее см. `hidden_states` в разделе возвращаемых тензоров.

return_dict (`bool`, *необязательный*) : Нужно ли возвращать [ModelOutput](/docs/transformers/v5.23.0/ru/main_classes/output#transformers.utils.ModelOutput) вместо обычного кортежа.

return_loss (`bool`, *необязательный*, по умолчанию None) : Возвращать ли вычисленное значение функции потерь.

**Возвращает:** `FlavaForPreTrainingOutput` или `tuple(torch.Tensor)`

`FlavaForPreTrainingOutput` или кортеж `torch.Tensor` (если передано `return_dict=False` или если `config.return_dict=False`), содержащий различные элементы в зависимости от конфигурации ([FlavaConfig](/docs/transformers/v5.23.0/ru/model_doc/flava#transformers.FlavaConfig)) и входных данных.

Метод forward класса [FlavaForPreTraining](/docs/transformers/v5.23.0/ru/model_doc/flava#transformers.FlavaForPreTraining) переопределяет специальный метод `__call__`.

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

- **loss** (`torch.Tensor`, *необязательный*, возвращается, если `return_loss` равно True) -- Суммарное значение функции потерь, рассчитанное для этой модели.
- **loss_info** (`~models.flava.modeling_flava.FlavaLosses`, *optional*) -- Подробная информация о потерях предобучения FLAVA. См. описание класса `FlavaLosses` для информации о ключах.
- **image_embeddings** (`torch.Tensor` формы `(batch_size, output_dim)`, *необязательный*, возвращается при наличии `pixel_values`) -- Встраивания изображений, которые по сути являются агрегированным выходом [FlavaImageModel](/docs/transformers/v5.23.0/ru/model_doc/flava#transformers.FlavaImageModel).
- **image_output** (`BaseModelOutputWithPooling`, *необязательный*, возвращается, если присутствуют `pixel_values`) -- Выход модели [FlavaImageModel](/docs/transformers/v5.23.0/ru/model_doc/flava#transformers.FlavaImageModel).
- **text_embeddings** (`torch.Tensor` формы `(batch_size, output_dim)`, *необязательный*, возвращается, если присутствуют `input_ids`) -- Векторные представления текста, которые по сути являются агрегированным выходом [FlavaTextModel](/docs/transformers/v5.23.0/ru/model_doc/flava#transformers.FlavaTextModel).
- **text_output** (`BaseModelOutputWithPooling`, *необязательный*, возвращается, если присутствуют `input_ids`) -- Выход модели [FlavaTextModel](/docs/transformers/v5.23.0/ru/model_doc/flava#transformers.FlavaTextModel).
- **multimodal_embeddings** (`torch.Tensor` формы `(batch_size, output_dim)`, *необязательный*, возвращается, если присутствуют `input_ids` и `pixel_values`, а `skip_unmasked_multimodal_encoder` равно `None` или `False`) -- мультимодальные эмбеддинги, которые по сути являются агрегированным выходом [FlavaTextModel](/docs/transformers/v5.23.0/ru/model_doc/flava#transformers.FlavaTextModel).
- **multimodal_output** (`BaseModelOutputWithPooling`, возвращается, если присутствуют `input_ids` и `pixel_values`, а `skip_unmasked_multimodal_encoder` равно `None` или `False`) -- Выход [FlavaMultimodalModel](/docs/transformers/v5.23.0/ru/model_doc/flava#transformers.FlavaMultimodalModel).
- **image_masked_embeddings** (`torch.Tensor` формы `(batch_size, output_dim)`, *необязательный*, возвращается при наличии `pixel_values`) -- Встраивания изображений, которые по сути являются агрегированным выходом [FlavaImageModel](/docs/transformers/v5.23.0/ru/model_doc/flava#transformers.FlavaImageModel). Использует `bool_masked_pos` для создания замаскированных изображений.
- **image_masked_output** (`BaseModelOutputWithPooling`, *необязательный*, возвращается при наличии `pixel_values`) -- Выход модели [FlavaImageModel](/docs/transformers/v5.23.0/ru/model_doc/flava#transformers.FlavaImageModel). Использует `bool_masked_pos` для создания замаскированных изображений.
- **text_masked_embeddings** (`torch.Tensor` формы `(batch_size, output_dim)`, *необязательный*, возвращается при наличии `input_ids_masked`) -- Текстовые эмбеддинги, которые по сути являются агрегированным выходом [FlavaTextModel](/docs/transformers/v5.23.0/ru/model_doc/flava#transformers.FlavaTextModel).
- **text_masked_output** (`BaseModelOutputWithPooling`, *необязательный*, возвращается, если присутствуют `input_ids_masked`) -- Выход модели [FlavaTextModel](/docs/transformers/v5.23.0/ru/model_doc/flava#transformers.FlavaTextModel).
- **multimodal_masked_embeddings** (`torch.Tensor` формы `(batch_size, output_dim)`, *необязательный*, возвращается, если присутствуют `input_ids` и `pixel_values`) -- мультимодальные эмбеддинги, которые по сути являются агрегированным выходом [FlavaTextModel](/docs/transformers/v5.23.0/ru/model_doc/flava#transformers.FlavaTextModel).
- **multimodal_masked_output** (`BaseModelOutputWithPooling`, *необязательный*, возвращается, если присутствуют `input_ids_masked` и `pixel_values`) -- Выход модели [FlavaMultimodalModel](/docs/transformers/v5.23.0/ru/model_doc/flava#transformers.FlavaMultimodalModel).
- **mim_logits** (`torch.Tensor` формы `(batch_size, num_image_patches, image_vocab_size)` или формы `(total_masked_patches, image_vocab_size)` , *необязательный*, возвращается, если присутствуют `pixel_values` и отсутствуют `input_ids_masked`) -- Логиты для одноимодного потерь MIM. Использует `bool_masked_pos` для получения замаскированных патчей. Сплошной вывод возвращается, если у `bool_masked_pos` часть патчей замаскирована.
- **mlm_logits** (`torch.Tensor` формы `(batch_size, text_seq_length, text_vocab_size)` или формы `(total_masked_seq_length, text_vocab_size)`, *необязательный*, возвращается, если присутствуют `input_ids_masked` и отсутствуют `pixel_values`) -- Логиты для одноимодной потери MLM. Сплошной вывод возвращается, если в `input_ids_masked` часть токенов замаскирована.
- **itm_logits** (`torch.Tensor` формы `(batch_size, 2)`, *необязательный*, возвращается, если присутствуют `input_ids_masked` и `pixel_values`) -- Логиты для потерь ITM. Обратите внимание, что потери ITM вычисляются на замаскированных парах в FLAVA.
- **contrastive_logits_per_image** (`torch.Tensor` формы `(image_batch_size, text_batch_size)`) -- Оценки масштабированного скалярного произведения между `image_embeddings` и `text_embeddings`, прошедшие через слои `image_projection` и `text_projection` FLAVA соответственно. Это представляет собой оценки сходства изображения и текста. Вычисляется на немаскированных изображениях и текстах.
- **contrastive_logits_per_text** (`torch.Tensor` формы `(text_batch_size, image_batch_size)`) -- Оценки масштабированного скалярного произведения между `text_embeddings` и `image_embeddings`, переданные через слои `text_projection` и `image_projection` модели FLAVA соответственно. Вычисляется для изображений и текстов без маскирования.
- **mmm_image_logits** (`torch.Tensor` формы `(batch_size, num_image_patches, image_vocab_size)` или формы `(total_masked_patches, image_vocab_size)`, *необязательный*, возвращается, если присутствуют `pixel_values` и `input_ids_masked`) -- Логиты для мультимодальной функции потерь MMM для изображений. Использует `bool_masked_pos` для получения замаскированных патчей. Сплошной (flattened) вывод возвращается, если в `bool_masked_pos` часть патчей замаскирована.
- **mmm_text_logits** (`torch.Tensor` формы `(batch_size, text_seq_length, text_vocab_size)` или формы `(total_masked_seq_length, text_vocab_size)`, *необязательный*, возвращается, если присутствуют `pixel_values` и `input_ids_masked`) -- Логиты для мультимодальной потери MMM для текста. Сплошной вывод возвращается, если в `input_ids_masked` часть токенов замаскирована.

Примеры:
```python
>>> from PIL import Image
>>> from huggingface_hub.utils import httpx
>>> from io import BytesIO
>>> from transformers import FlavaForPreTraining, AutoProcessor

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

>>> model = FlavaForPreTraining.from_pretrained("facebook/flava-full")
>>> processor = AutoProcessor.from_pretrained("facebook/flava-full")

>>> text = ["a photo of a cat"]

>>> inputs = processor(
...     images=[image],
...     text=text,
...     return_masks=True,
...     return_codebook_pixels=True,
...     padding=True,
...     max_length=77,
...     return_tensors="pt",
... )

>>> output = model(**inputs)
```

## FlavaModel[[transformers.FlavaModel]]

#### transformers.FlavaModel[[transformers.FlavaModel]]

```python
transformers.FlavaModel(config: FlavaConfig)
```

[Источник](https://github.com/huggingface/transformers/blob/v5.23.0/src/transformers/models/flava/modeling_flava.py#L935)

**Параметры:**

config ([FlavaConfig](/docs/transformers/v5.23.0/ru/model_doc/flava#transformers.FlavaConfig)) : Класс конфигурации модели со всеми параметрами модели. Инициализация с файлом конфигурации не загружает веса, связанные с моделью, только конфигурацию. Используйте метод [from_pretrained()](/docs/transformers/v5.23.0/ru/main_classes/model#transformers.PreTrainedModel.from_pretrained) для загрузки весов модели.

Модель Flava без дополнительных слоёв, выводящая необработанные скрытые состояния.

Эта модель наследуется от [PreTrainedModel](/docs/transformers/v5.23.0/ru/main_classes/model#transformers.PreTrainedModel). Общие методы, которые библиотека реализует для всех своих моделей (например, загрузка или сохранение, изменение размера входных эмбеддингов, обрезка головок и т. д.), описаны в документации родительского класса.

Эта модель также является подклассом [torch.nn.Module](https://pytorch.org/docs/stable/nn.html#torch.nn.Module) в PyTorch. Используйте её как обычный модуль PyTorch и обращайтесь к документации PyTorch по всем вопросам, связанным с общим использованием и поведением.

#### forward[[transformers.FlavaModel.forward]]

```python
forward(input_ids: typing.Optional[torch.LongTensor] = None, pixel_values: typing.Optional[torch.Tensor] = None, attention_mask: typing.Optional[torch.Tensor] = None, token_type_ids: typing.Optional[torch.Tensor] = None, bool_masked_pos: typing.Optional[torch.Tensor] = None, position_ids: typing.Optional[torch.LongTensor] = None, image_attention_mask: typing.Optional[torch.Tensor] = None, skip_multimodal_encoder: bool | None = None, output_attentions: bool | None = None, output_hidden_states: bool = True, return_dict: bool | None = None, **kwargs)
```

[Источник](https://github.com/huggingface/transformers/blob/v5.23.0/src/transformers/models/flava/modeling_flava.py#L1078)

**Параметры:**

input_ids (`torch.LongTensor` формы `(batch_size, image_num_patches + text_seq_len)`) : Индексы токенов входной последовательности в словаре. Индексы можно получить с помощью [AutoTokenizer](/docs/transformers/v5.23.0/ru/model_doc/auto#transformers.AutoTokenizer). Подробности см. в [PreTrainedTokenizer.encode()](/docs/transformers/v5.23.0/ru/internal/tokenization_utils#transformers.PreTrainedTokenizerBase.encode) и [PreTrainedTokenizer.__call__()](/docs/transformers/v5.23.0/ru/internal/tokenization_utils#transformers.PreTrainedTokenizerBase.__call__). [Что такое входные идентификаторы?](../glossary#input-ids)

pixel_values (`torch.Tensor` формы `(batch_size, num_channels, image_size, image_size)`, *необязательно*) : Тензоры, соответствующие входным изображениям. Значения пикселей можно получить с помощью [FlavaImageProcessor](/docs/transformers/v5.23.0/ru/model_doc/flava#transformers.FlavaImageProcessor). Подробности см. в [FlavaImageProcessor.__call__()](/docs/transformers/v5.23.0/ru/model_doc/molmo2#transformers.Molmo2ImageProcessor.__call__) ([FlavaProcessor](/docs/transformers/v5.23.0/ru/model_doc/flava#transformers.FlavaProcessor) использует [FlavaImageProcessor](/docs/transformers/v5.23.0/ru/model_doc/flava#transformers.FlavaImageProcessor) для обработки изображений).

attention_mask (`torch.Tensor` формы `(batch_size, sequence_length)`, *необязательный*) : Маска для предотвращения применения внимания к индексам токенов отсечки. Значения маски выбираются из `[0, 1]`:  - 1 для токенов, которые **не замаскированы**, - 0 для токенов, которые **замаскированы**.  [Что такое маски внимания?](../glossary#attention-mask)

token_type_ids (`torch.LongTensor` формы `(batch_size, image_num_patches + text_seq_len)`, *необязательный*) : Индексы сегментных токенов для указания первой и второй частей входных данных. Индексы выбираются из `[0, 1]`: - 0 соответствует токену *предложения A*, - 1 соответствует токену *предложения B*. [Что такое идентификаторы типов токенов?](../glossary#token-type-ids)

bool_masked_pos (`torch.BoolTensor` формы `(batch_size, image_num_patches)`) : Булевы позиции маски. Указывает, какие патчи замаскированы (1), а какие нет (0).

position_ids (`torch.LongTensor` формы `(batch_size, sequence_length)`, *необязательно*) : Индексы позиций токенов каждого входного последовательности в позиционных эмбеддингах. Выбираются из диапазона `[0, config.n_positions - 1]`.  [Что такое position IDs?](../glossary#position-ids)

image_attention_mask (`torch.Tensor` формы `(batch_size, image_num_patches)`, *необязательный*) : Маска для исключения применения внимания к значениям пикселей, заполняющим пустые места, в изображении. Значения маски выбираются из `[0, 1]`: - 1 для реальных значений пикселей (т. е. **не замаскированных**), - 0 для значений пикселей, заполняющих пустые места (т. е. **замаскированных**).

skip_multimodal_encoder (`*bool*`, *необязательный*) : Пропускать любые вычисления для мультимодального энкодера. Полезно, если мультимодальное кодирование не будет использоваться.

output_attentions (`bool`, *необязательный*) : Нужно ли возвращать тензоры внимания всех слоев внимания. Подробнее см. `attentions` в разделе возвращаемых тензоров.

output_hidden_states (`bool`, *необязательный*, по умолчанию `True`) : Возвращать ли скрытые состояния всех слоёв. Подробнее см. `hidden_states` в разделе возвращаемых тензоров.

return_dict (`bool`, *необязательный*) : Нужно ли возвращать [ModelOutput](/docs/transformers/v5.23.0/ru/main_classes/output#transformers.utils.ModelOutput) вместо обычного кортежа.

**Возвращает:** `FlavaModelOutput` или `tuple(torch.Tensor)`

`FlavaModelOutput` или кортеж `torch.Tensor` (если передано `return_dict=False` или если `config.return_dict=False`), содержащий различные элементы в зависимости от конфигурации ([FlavaConfig](/docs/transformers/v5.23.0/ru/model_doc/flava#transformers.FlavaConfig)) и входных данных.

Метод forward модели [FlavaModel](/docs/transformers/v5.23.0/ru/model_doc/flava#transformers.FlavaModel) переопределяет специальный метод `__call__`.

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

- **image_embeddings** (`torch.Tensor` формы `(batch_size, output_dim)`, *необязательный*, возвращается при наличии `pixel_values`) -- Встраивания изображений, которые по сути являются агрегированным выходом [FlavaImageModel](/docs/transformers/v5.23.0/ru/model_doc/flava#transformers.FlavaImageModel).
- **image_output** (`BaseModelOutputWithPooling`, *необязательный*, возвращается, если присутствуют `pixel_values`) -- Выход модели [FlavaImageModel](/docs/transformers/v5.23.0/ru/model_doc/flava#transformers.FlavaImageModel).
- **text_embeddings** (`torch.Tensor` формы `(batch_size, output_dim)`, *необязательный*, возвращается, если присутствуют `input_ids`) -- Векторные представления текста, которые по сути являются агрегированным выходом [FlavaTextModel](/docs/transformers/v5.23.0/ru/model_doc/flava#transformers.FlavaTextModel).
- **text_output** (`BaseModelOutputWithPooling`, *необязательный*, возвращается, если присутствуют `input_ids`) -- Выход модели [FlavaTextModel](/docs/transformers/v5.23.0/ru/model_doc/flava#transformers.FlavaTextModel).
- **multimodal_embeddings** (`torch.Tensor` формы `(batch_size, output_dim)`, *необязательный*, возвращается, если присутствуют `input_ids` и `pixel_values`, а `skip_multimodal_encoder` равно `None` или `False`) -- Мультимодальные эмбеддинги, которые по сути являются агрегированным выходом [FlavaTextModel](/docs/transformers/v5.23.0/ru/model_doc/flava#transformers.FlavaTextModel).
- **multimodal_output** (`BaseModelOutputWithPooling`, возвращается, если присутствуют `input_ids` и `pixel_values`, а `skip_multimodal_encoder` равно `None` или `False`) -- Выход модели [FlavaMultimodalModel](/docs/transformers/v5.23.0/ru/model_doc/flava#transformers.FlavaMultimodalModel).

Примеры:

```python
>>> from PIL import Image
>>> from huggingface_hub.utils import httpx
>>> from io import BytesIO
>>> from transformers import AutoProcessor, FlavaModel

>>> model = FlavaModel.from_pretrained("facebook/flava-full")
>>> processor = AutoProcessor.from_pretrained("facebook/flava-full")

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

>>> inputs = processor(text=["a photo of a cat"], images=image, return_tensors="pt", padding=True)

>>> outputs = model(**inputs)

>>> image_embeddings = outputs.image_embeddings
>>> text_embeddings = outputs.text_embeddings
>>> multimodal_embeddings = outputs.multimodal_embeddings

>>> outputs.image_embeddings.shape
torch.Size([1, 197, 768])

>>> text_embeddings.shape
torch.Size([1, 7, 768])

>>> multimodal_embeddings.shape
torch.Size([1, 205, 768])
```

#### get_text_features[[transformers.FlavaModel.get_text_features]]

```python
get_text_features(input_ids: Tensor, attention_mask: typing.Optional[torch.Tensor] = None, token_type_ids: typing.Optional[torch.Tensor] = None, position_ids: typing.Optional[torch.Tensor] = None, **kwargs: *<class 'transformers.utils.generic.TransformersKwargs'>)
```

[Источник](https://github.com/huggingface/transformers/blob/v5.23.0/src/transformers/models/flava/modeling_flava.py#L981)

**Параметры:**

input_ids (`torch.LongTensor` формы `(batch_size, text_seq_length)`) : Индексы токенов входной последовательности в словаре. Индексы можно получить с помощью [AutoTokenizer](/docs/transformers/v5.23.0/ru/model_doc/auto#transformers.AutoTokenizer). Подробности см. в [PreTrainedTokenizer.encode()](/docs/transformers/v5.23.0/ru/internal/tokenization_utils#transformers.PreTrainedTokenizerBase.encode) и [PreTrainedTokenizer.__call__()](/docs/transformers/v5.23.0/ru/internal/tokenization_utils#transformers.PreTrainedTokenizerBase.__call__). [Что такое входные идентификаторы?](../glossary#input-ids)

attention_mask (`torch.Tensor` формы `(batch_size, sequence_length)`, *необязательный*) : Маска для предотвращения применения внимания к индексам токенов отсечки. Значения маски выбираются из `[0, 1]`:  - 1 для токенов, которые **не замаскированы**, - 0 для токенов, которые **замаскированы**.  [Что такое маски внимания?](../glossary#attention-mask)

token_type_ids (`torch.LongTensor` формы `(batch_size, text_seq_length)`, *необязательный*) : Индексы сегментных токенов для указания первой и второй частей входных данных. Индексы выбираются из `[0, 1]`: - 0 соответствует токену *предложения A*, - 1 соответствует токену *предложения B*. [Что такое идентификаторы типов токенов?](../glossary#token-type-ids)

position_ids (`torch.Tensor` формы `(batch_size, sequence_length)`, *необязательный*) : Индексы позиций токенов каждого входного последовательности в позиционных эмбеддингах. Выбираются из диапазона `[0, config.n_positions - 1]`.  [Что такое идентификаторы позиций?](../glossary#position-ids)

**Возвращает:** [BaseModelOutputWithPooling](/docs/transformers/v5.23.0/ru/main_classes/output#transformers.modeling_outputs.BaseModelOutputWithPooling) или `tuple(torch.Tensor)`

Объект [BaseModelOutputWithPooling](/docs/transformers/v5.23.0/ru/main_classes/output#transformers.modeling_outputs.BaseModelOutputWithPooling) или кортеж `torch.Tensor` (если передано `return_dict=False` или если `config.return_dict=False`), содержащий различные элементы в зависимости от конфигурации ([FlavaConfig](/docs/transformers/v5.23.0/ru/model_doc/flava#transformers.FlavaConfig)) и входных данных.

- **last_hidden_state** (`torch.Tensor` формы `(batch_size, sequence_length, hidden_size)`) -- Последовательность скрытых состояний на выходе последнего слоя модели.
- **pooler_output** (`torch.Tensor` формы `(batch_size, hidden_size)`) -- Скрытое состояние последнего слоя для первого токена последовательности (токен классификации) после дополнительной обработки слоями, используемыми для вспомогательной задачи предварительного обучения. Например, для моделей семейства BERT это возвращает токен классификации после обработки линейным слоем и функцией активации tanh. Веса линейного слоя обучаются по задаче предсказания следующего предложения (классификации) во время предварительного обучения.
- **hidden_states** (`tuple(torch.Tensor)`, *необязательный*, возвращается при передаче `output_hidden_states=True` или когда `config.output_hidden_states=True`) -- Кортеж `torch.Tensor` (один для вывода слоя встраиваний, если модель имеет слой встраиваний, + один для вывода каждого слоя) формы `(batch_size, sequence_length, hidden_size)`.

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

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

Примеры:

```python
>>> import torch
>>> from transformers import AutoProcessor, FlavaModel

>>> model = FlavaModel.from_pretrained("{0}")
>>> processor = AutoProcessor.from_pretrained("{0}")

>>> inputs = processor(
...     text=["a photo of a cat", "a photo of a dog"], max_length=77, padding="max_length", return_tensors="pt"
... )
>>> with torch.inference_mode():
...     text_features = model.get_text_features(**inputs)
```

#### get_image_features[[transformers.FlavaModel.get_image_features]]

```python
get_image_features(pixel_values: Tensor, bool_masked_pos: typing.Optional[torch.BoolTensor] = None, interpolate_pos_encoding: bool | None = None, attention_mask: typing.Optional[torch.Tensor] = None, **kwargs: *<class 'transformers.utils.generic.TransformersKwargs'>)
```

[Источник](https://github.com/huggingface/transformers/blob/v5.23.0/src/transformers/models/flava/modeling_flava.py#L1032)

**Параметры:**

pixel_values (`torch.Tensor` формы `(batch_size, num_channels, image_size, image_size)`) : Тензоры, соответствующие входным изображениям. Значения пикселей можно получить с помощью [FlavaImageProcessor](/docs/transformers/v5.23.0/ru/model_doc/flava#transformers.FlavaImageProcessor). Подробности см. в [FlavaImageProcessor.__call__()](/docs/transformers/v5.23.0/ru/model_doc/molmo2#transformers.Molmo2ImageProcessor.__call__) ([FlavaProcessor](/docs/transformers/v5.23.0/ru/model_doc/flava#transformers.FlavaProcessor) использует [FlavaImageProcessor](/docs/transformers/v5.23.0/ru/model_doc/flava#transformers.FlavaImageProcessor) для обработки изображений).

bool_masked_pos (`torch.BoolTensor` формы `(batch_size, image_num_patches)`) : Булевы позиции маски. Указывает, какие патчи замаскированы (1), а какие нет (0).

interpolate_pos_encoding (`bool`, *необязательный*) : Нужно ли интерполировать предобученные позиционные кодирования.

attention_mask (`torch.Tensor` формы `(batch_size, sequence_length)`, *необязательный*) : Маска для предотвращения применения внимания к индексам токенов отсечки. Значения маски выбираются из `[0, 1]`:  - 1 для токенов, которые **не замаскированы**, - 0 для токенов, которые **замаскированы**.  [Что такое маски внимания?](../glossary#attention-mask)

**Возвращает:** [BaseModelOutputWithPooling](/docs/transformers/v5.23.0/ru/main_classes/output#transformers.modeling_outputs.BaseModelOutputWithPooling) или `tuple(torch.Tensor)`

Объект [BaseModelOutputWithPooling](/docs/transformers/v5.23.0/ru/main_classes/output#transformers.modeling_outputs.BaseModelOutputWithPooling) или кортеж `torch.Tensor` (если передано `return_dict=False` или если `config.return_dict=False`), содержащий различные элементы в зависимости от конфигурации ([FlavaConfig](/docs/transformers/v5.23.0/ru/model_doc/flava#transformers.FlavaConfig)) и входных данных.

- **last_hidden_state** (`torch.Tensor` формы `(batch_size, sequence_length, hidden_size)`) -- Последовательность скрытых состояний на выходе последнего слоя модели.
- **pooler_output** (`torch.Tensor` формы `(batch_size, hidden_size)`) -- Скрытое состояние последнего слоя для первого токена последовательности (токен классификации) после дополнительной обработки слоями, используемыми для вспомогательной задачи предварительного обучения. Например, для моделей семейства BERT это возвращает токен классификации после обработки линейным слоем и функцией активации tanh. Веса линейного слоя обучаются по задаче предсказания следующего предложения (классификации) во время предварительного обучения.
- **hidden_states** (`tuple(torch.Tensor)`, *необязательный*, возвращается при передаче `output_hidden_states=True` или когда `config.output_hidden_states=True`) -- Кортеж `torch.Tensor` (один для вывода слоя встраиваний, если модель имеет слой встраиваний, + один для вывода каждого слоя) формы `(batch_size, sequence_length, hidden_size)`.

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

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

Примеры:

```python
>>> import torch
>>> from transformers import AutoProcessor, FlavaModel
>>> from transformers.image_utils import load_image

>>> model = FlavaModel.from_pretrained("{0}")
>>> processor = AutoProcessor.from_pretrained("{0}")

>>> url = "http://images.cocodataset.org/val2017/000000039769.jpg"
>>> image = load_image(url)

>>> inputs = processor(images=image, return_tensors="pt")

>>> with torch.inference_mode():
...     image_features = model.get_image_features(**inputs)
```

## FlavaImageCodebook[[transformers.FlavaImageCodebook]]

#### transformers.FlavaImageCodebook[[transformers.FlavaImageCodebook]]

```python
transformers.FlavaImageCodebook(config: FlavaImageCodebookConfig, **kwargs: Any)
```

[Источник](https://github.com/huggingface/transformers/blob/v5.23.0/src/transformers/models/flava/modeling_flava.py#L1289)

**Параметры:**

config ([FlavaImageCodebookConfig](/docs/transformers/v5.23.0/ru/model_doc/flava#transformers.FlavaImageCodebookConfig)) : класс конфигурации модели со всеми параметрами модели. Инициализация с файлом конфигурации не загружает веса, связанные с моделью, только конфигурацию. Используйте метод [from_pretrained()](/docs/transformers/v5.23.0/ru/main_classes/model#transformers.PreTrainedModel.from_pretrained) для загрузки весов модели.

Модель кодовой книги изображений FLAVA вдохновлена исходным кодировщиком DALL-E. Выводит необработанные скрытые состояния и может использоваться для генерации токенов изображения на основе словаря DALL-E. Используется для генерации меток для MIM. Используйте `get_codebook_indices`, чтобы получить токены изображения для данного изображения.

Эта модель наследуется от [PreTrainedModel](/docs/transformers/v5.23.0/ru/main_classes/model#transformers.PreTrainedModel). Общие методы, которые библиотека реализует для всех своих моделей (например, загрузка или сохранение, изменение размера входных эмбеддингов, обрезка головок и т. д.), описаны в документации родительского класса.

Эта модель также является подклассом [torch.nn.Module](https://pytorch.org/docs/stable/nn.html#torch.nn.Module) в PyTorch. Используйте её как обычный модуль PyTorch и обращайтесь к документации PyTorch по всем вопросам, связанным с общим использованием и поведением.

#### forward[[transformers.FlavaImageCodebook.forward]]

```python
forward(pixel_values: Tensor, **kwargs)
```

[Источник](https://github.com/huggingface/transformers/blob/v5.23.0/src/transformers/models/flava/modeling_flava.py#L1374)

#### get_codebook_indices[[transformers.FlavaImageCodebook.get_codebook_indices]]

```python
get_codebook_indices(pixel_values: Tensor)
```

[Источник](https://github.com/huggingface/transformers/blob/v5.23.0/src/transformers/models/flava/modeling_flava.py#L1340)

#### get_codebook_probs[[transformers.FlavaImageCodebook.get_codebook_probs]]

```python
get_codebook_probs(pixel_values: Tensor)
```

[Источник](https://github.com/huggingface/transformers/blob/v5.23.0/src/transformers/models/flava/modeling_flava.py#L1370)

## FlavaTextModel[[transformers.FlavaTextModel]]

#### transformers.FlavaTextModel[[transformers.FlavaTextModel]]

```python
transformers.FlavaTextModel(config: FlavaTextConfig, add_pooling_layer: bool = True)
```

[Источник](https://github.com/huggingface/transformers/blob/v5.23.0/src/transformers/models/flava/modeling_flava.py#L759)

**Параметры:**

config ([FlavaTextConfig](/docs/transformers/v5.23.0/ru/model_doc/flava#transformers.FlavaTextConfig)) : класс конфигурации модели со всеми параметрами модели. Инициализация с файлом конфигурации не загружает веса, связанные с моделью, только конфигурацию. Используйте метод [from_pretrained()](/docs/transformers/v5.23.0/ru/main_classes/model#transformers.PreTrainedModel.from_pretrained) для загрузки весов модели.

add_pooling_layer (`bool`, *необязательный*, по умолчанию `True`) : Нужно ли добавлять слой пулинга

Модель Flava Text, выводящая необработанные скрытые состояния без какого-либо специализированного слоя на выходе.

Эта модель наследуется от [PreTrainedModel](/docs/transformers/v5.23.0/ru/main_classes/model#transformers.PreTrainedModel). Общие методы, которые библиотека реализует для всех своих моделей (например, загрузка или сохранение, изменение размера входных эмбеддингов, обрезка головок и т. д.), описаны в документации родительского класса.

Эта модель также является подклассом [torch.nn.Module](https://pytorch.org/docs/stable/nn.html#torch.nn.Module) в PyTorch. Используйте её как обычный модуль PyTorch и обращайтесь к документации PyTorch по всем вопросам, связанным с общим использованием и поведением.

#### forward[[transformers.FlavaTextModel.forward]]

```python
forward(input_ids: typing.Optional[torch.Tensor] = None, attention_mask: typing.Optional[torch.Tensor] = None, token_type_ids: typing.Optional[torch.Tensor] = None, position_ids: typing.Optional[torch.Tensor] = None, output_attentions: bool | None = None, output_hidden_states: bool | None = None, return_dict: bool | None = None, **kwargs)
```

[Источник](https://github.com/huggingface/transformers/blob/v5.23.0/src/transformers/models/flava/modeling_flava.py#L787)

**Параметры:**

input_ids (`torch.LongTensor` формы `(batch_size, text_seq_length)`) : Индексы токенов входной последовательности в словаре. Индексы можно получить с помощью [AutoTokenizer](/docs/transformers/v5.23.0/ru/model_doc/auto#transformers.AutoTokenizer). Подробности см. в [PreTrainedTokenizer.encode()](/docs/transformers/v5.23.0/ru/internal/tokenization_utils#transformers.PreTrainedTokenizerBase.encode) и [PreTrainedTokenizer.__call__()](/docs/transformers/v5.23.0/ru/internal/tokenization_utils#transformers.PreTrainedTokenizerBase.__call__). [Что такое входные идентификаторы?](../glossary#input-ids)

attention_mask (`torch.Tensor` формы `(batch_size, sequence_length)`, *необязательный*) : Маска для предотвращения применения внимания к индексам токенов отсечки. Значения маски выбираются из `[0, 1]`:  - 1 для токенов, которые **не замаскированы**, - 0 для токенов, которые **замаскированы**.  [Что такое маски внимания?](../glossary#attention-mask)

token_type_ids (`torch.LongTensor` формы `(batch_size, text_seq_length)`, *необязательный*) : Индексы сегментных токенов для указания первой и второй частей входных данных. Индексы выбираются из `[0, 1]`: - 0 соответствует токену *предложения A*, - 1 соответствует токену *предложения B*. [Что такое идентификаторы типов токенов?](../glossary#token-type-ids)

position_ids (`torch.Tensor` формы `(batch_size, sequence_length)`, *необязательный*) : Индексы позиций токенов каждого входного последовательности в позиционных эмбеддингах. Выбираются из диапазона `[0, config.n_positions - 1]`.  [Что такое идентификаторы позиций?](../glossary#position-ids)

output_attentions (`bool`, *необязательный*) : Нужно ли возвращать тензоры внимания всех слоев внимания. Подробнее см. `attentions` в разделе возвращаемых тензоров.

output_hidden_states (`bool`, *необязательный*) : Нужно ли возвращать скрытые состояния всех слоёв. Подробнее о `hidden_states` в разделе возвращаемых тензоров.

return_dict (`bool`, *необязательный*) : Нужно ли возвращать [ModelOutput](/docs/transformers/v5.23.0/ru/main_classes/output#transformers.utils.ModelOutput) вместо обычного кортежа.

**Возвращает:** [BaseModelOutputWithPooling](/docs/transformers/v5.23.0/ru/main_classes/output#transformers.modeling_outputs.BaseModelOutputWithPooling) или `tuple(torch.Tensor)`

Объект [BaseModelOutputWithPooling](/docs/transformers/v5.23.0/ru/main_classes/output#transformers.modeling_outputs.BaseModelOutputWithPooling) или кортеж `torch.Tensor` (если передано `return_dict=False` или если `config.return_dict=False`), содержащий различные элементы в зависимости от конфигурации ([FlavaConfig](/docs/transformers/v5.23.0/ru/model_doc/flava#transformers.FlavaConfig)) и входных данных.

Метод forward модели [FlavaTextModel](/docs/transformers/v5.23.0/ru/model_doc/flava#transformers.FlavaTextModel) переопределяет специальный метод `__call__`.

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

- **last_hidden_state** (`torch.Tensor` формы `(batch_size, sequence_length, hidden_size)`) -- Последовательность скрытых состояний на выходе последнего слоя модели.
- **pooler_output** (`torch.Tensor` формы `(batch_size, hidden_size)`) -- Скрытое состояние последнего слоя для первого токена последовательности (токен классификации) после дополнительной обработки слоями, используемыми для вспомогательной задачи предварительного обучения. Например, для моделей семейства BERT это возвращает токен классификации после обработки линейным слоем и функцией активации tanh. Веса линейного слоя обучаются по задаче предсказания следующего предложения (классификации) во время предварительного обучения.
- **hidden_states** (`tuple(torch.Tensor)`, *необязательный*, возвращается при передаче `output_hidden_states=True` или когда `config.output_hidden_states=True`) -- Кортеж `torch.Tensor` (один для вывода слоя встраиваний, если модель имеет слой встраиваний, + один для вывода каждого слоя) формы `(batch_size, sequence_length, hidden_size)`.

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

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

## FlavaImageModel[[transformers.FlavaImageModel]]

#### transformers.FlavaImageModel[[transformers.FlavaImageModel]]

```python
transformers.FlavaImageModel(config: FlavaImageConfig, add_pooling_layer: bool = True)
```

[Источник](https://github.com/huggingface/transformers/blob/v5.23.0/src/transformers/models/flava/modeling_flava.py#L677)

**Параметры:**

config ([FlavaImageConfig](/docs/transformers/v5.23.0/ru/model_doc/flava#transformers.FlavaImageConfig)) : класс конфигурации модели со всеми параметрами модели. Инициализация с файлом конфигурации не загружает веса, связанные с моделью, только конфигурацию. Используйте метод [from_pretrained()](/docs/transformers/v5.23.0/ru/main_classes/model#transformers.PreTrainedModel.from_pretrained) для загрузки весов модели.

add_pooling_layer (`bool`, *необязательный*, по умолчанию `True`) : Нужно ли добавлять слой пулинга

Модель Flava без дополнительных слоёв, выводящая необработанные скрытые состояния.

Эта модель наследуется от [PreTrainedModel](/docs/transformers/v5.23.0/ru/main_classes/model#transformers.PreTrainedModel). Общие методы, которые библиотека реализует для всех своих моделей (например, загрузка или сохранение, изменение размера входных эмбеддингов, обрезка головок и т. д.), описаны в документации родительского класса.

Эта модель также является подклассом [torch.nn.Module](https://pytorch.org/docs/stable/nn.html#torch.nn.Module) в PyTorch. Используйте её как обычный модуль PyTorch и обращайтесь к документации PyTorch по всем вопросам, связанным с общим использованием и поведением.

#### forward[[transformers.FlavaImageModel.forward]]

```python
forward(pixel_values: typing.Optional[torch.Tensor] = None, bool_masked_pos: typing.Optional[torch.BoolTensor] = None, interpolate_pos_encoding: bool | None = None, attention_mask: typing.Optional[torch.Tensor] = None, output_attentions: bool | None = None, output_hidden_states: bool | None = None, return_dict: bool | None = None, **kwargs)
```

[Источник](https://github.com/huggingface/transformers/blob/v5.23.0/src/transformers/models/flava/modeling_flava.py#L707)

**Параметры:**

pixel_values (`torch.Tensor` формы `(batch_size, num_channels, image_size, image_size)`, *необязательно*) : Тензоры, соответствующие входным изображениям. Значения пикселей можно получить с помощью [FlavaImageProcessor](/docs/transformers/v5.23.0/ru/model_doc/flava#transformers.FlavaImageProcessor). Подробности см. в [FlavaImageProcessor.__call__()](/docs/transformers/v5.23.0/ru/model_doc/molmo2#transformers.Molmo2ImageProcessor.__call__) ([FlavaProcessor](/docs/transformers/v5.23.0/ru/model_doc/flava#transformers.FlavaProcessor) использует [FlavaImageProcessor](/docs/transformers/v5.23.0/ru/model_doc/flava#transformers.FlavaImageProcessor) для обработки изображений).

bool_masked_pos (`torch.BoolTensor` формы `(batch_size, image_num_patches)`) : Булевы позиции маски. Указывает, какие патчи замаскированы (1), а какие нет (0).

interpolate_pos_encoding (`bool`, *необязательный*) : Нужно ли интерполировать предобученные позиционные кодирования.

attention_mask (`torch.Tensor` формы `(batch_size, sequence_length)`, *необязательный*) : Маска для предотвращения применения внимания к индексам токенов отсечки. Значения маски выбираются из `[0, 1]`:  - 1 для токенов, которые **не замаскированы**, - 0 для токенов, которые **замаскированы**.  [Что такое маски внимания?](../glossary#attention-mask)

output_attentions (`bool`, *необязательный*) : Нужно ли возвращать тензоры внимания всех слоев внимания. Подробнее см. `attentions` в разделе возвращаемых тензоров.

output_hidden_states (`bool`, *необязательный*) : Нужно ли возвращать скрытые состояния всех слоёв. Подробнее о `hidden_states` в разделе возвращаемых тензоров.

return_dict (`bool`, *необязательный*) : Нужно ли возвращать [ModelOutput](/docs/transformers/v5.23.0/ru/main_classes/output#transformers.utils.ModelOutput) вместо обычного кортежа.

**Возвращает:** [BaseModelOutputWithPooling](/docs/transformers/v5.23.0/ru/main_classes/output#transformers.modeling_outputs.BaseModelOutputWithPooling) или `tuple(torch.Tensor)`

Объект [BaseModelOutputWithPooling](/docs/transformers/v5.23.0/ru/main_classes/output#transformers.modeling_outputs.BaseModelOutputWithPooling) или кортеж `torch.Tensor` (если передано `return_dict=False` или если `config.return_dict=False`), содержащий различные элементы в зависимости от конфигурации ([FlavaConfig](/docs/transformers/v5.23.0/ru/model_doc/flava#transformers.FlavaConfig)) и входных данных.

Метод forward модели [FlavaImageModel](/docs/transformers/v5.23.0/ru/model_doc/flava#transformers.FlavaImageModel) переопределяет специальный метод `__call__`.

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

- **last_hidden_state** (`torch.Tensor` формы `(batch_size, sequence_length, hidden_size)`) -- Последовательность скрытых состояний на выходе последнего слоя модели.
- **pooler_output** (`torch.Tensor` формы `(batch_size, hidden_size)`) -- Скрытое состояние последнего слоя для первого токена последовательности (токен классификации) после дополнительной обработки слоями, используемыми для вспомогательной задачи предварительного обучения. Например, для моделей семейства BERT это возвращает токен классификации после обработки линейным слоем и функцией активации tanh. Веса линейного слоя обучаются по задаче предсказания следующего предложения (классификации) во время предварительного обучения.
- **hidden_states** (`tuple(torch.Tensor)`, *необязательный*, возвращается при передаче `output_hidden_states=True` или когда `config.output_hidden_states=True`) -- Кортеж `torch.Tensor` (один для вывода слоя встраиваний, если модель имеет слой встраиваний, + один для вывода каждого слоя) формы `(batch_size, sequence_length, hidden_size)`.

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

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

## FlavaMultimodalModel[[transformers.FlavaMultimodalModel]]

#### transformers.FlavaMultimodalModel[[transformers.FlavaMultimodalModel]]

```python
transformers.FlavaMultimodalModel(config: FlavaMultimodalConfig, add_pooling_layer = True)
```

[Источник](https://github.com/huggingface/transformers/blob/v5.23.0/src/transformers/models/flava/modeling_flava.py#L855)

**Параметры:**

config ([FlavaMultimodalConfig](/docs/transformers/v5.23.0/ru/model_doc/flava#transformers.FlavaMultimodalConfig)) : Класс конфигурации модели со всеми параметрами модели. Инициализация с файлом конфигурации не загружает веса, связанные с моделью, только конфигурацию. Используйте метод [from_pretrained()](/docs/transformers/v5.23.0/ru/main_classes/model#transformers.PreTrainedModel.from_pretrained) для загрузки весов модели.

add_pooling_layer (`bool`, *необязательный*, по умолчанию `True`) : Нужно ли добавлять слой пулинга

Модель Flava без дополнительных слоёв, выводящая необработанные скрытые состояния.

Эта модель наследуется от [PreTrainedModel](/docs/transformers/v5.23.0/ru/main_classes/model#transformers.PreTrainedModel). Общие методы, которые библиотека реализует для всех своих моделей (например, загрузка или сохранение, изменение размера входных эмбеддингов, обрезка головок и т. д.), описаны в документации родительского класса.

Эта модель также является подклассом [torch.nn.Module](https://pytorch.org/docs/stable/nn.html#torch.nn.Module) в PyTorch. Используйте её как обычный модуль PyTorch и обращайтесь к документации PyTorch по всем вопросам, связанным с общим использованием и поведением.

#### forward[[transformers.FlavaMultimodalModel.forward]]

```python
forward(hidden_states: Tensor, attention_mask: typing.Optional[torch.Tensor] = None, output_attentions: bool | None = None, output_hidden_states: bool | None = None, return_dict: bool | None = None, **kwargs)
```

[Источник](https://github.com/huggingface/transformers/blob/v5.23.0/src/transformers/models/flava/modeling_flava.py#L879)

**Параметры:**

hidden_states (`torch.Tensor` формы `(batch_size, image_num_patches + text_seq_len, hidden_size)`) : Сконкатенированные скрытые состояния унимодальных энкодеров.

attention_mask (`torch.Tensor` формы `(batch_size, sequence_length)`, *необязательный*) : Маска для предотвращения применения внимания к индексам токенов отсечки. Значения маски выбираются из `[0, 1]`:  - 1 для токенов, которые **не замаскированы**, - 0 для токенов, которые **замаскированы**.  [Что такое маски внимания?](../glossary#attention-mask)

output_attentions (`bool`, *необязательный*) : Нужно ли возвращать тензоры внимания всех слоев внимания. Подробнее см. `attentions` в разделе возвращаемых тензоров.

output_hidden_states (`bool`, *необязательный*) : Нужно ли возвращать скрытые состояния всех слоёв. Подробнее о `hidden_states` в разделе возвращаемых тензоров.

return_dict (`bool`, *необязательный*) : Нужно ли возвращать [ModelOutput](/docs/transformers/v5.23.0/ru/main_classes/output#transformers.utils.ModelOutput) вместо обычного кортежа.

**Возвращает:** [BaseModelOutputWithPooling](/docs/transformers/v5.23.0/ru/main_classes/output#transformers.modeling_outputs.BaseModelOutputWithPooling) или `tuple(torch.Tensor)`

Объект [BaseModelOutputWithPooling](/docs/transformers/v5.23.0/ru/main_classes/output#transformers.modeling_outputs.BaseModelOutputWithPooling) или кортеж `torch.Tensor` (если передано `return_dict=False` или если `config.return_dict=False`), содержащий различные элементы в зависимости от конфигурации ([FlavaConfig](/docs/transformers/v5.23.0/ru/model_doc/flava#transformers.FlavaConfig)) и входных данных.

Метод forward модели [FlavaMultimodalModel](/docs/transformers/v5.23.0/ru/model_doc/flava#transformers.FlavaMultimodalModel) переопределяет специальный метод `__call__`.

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

- **last_hidden_state** (`torch.Tensor` формы `(batch_size, sequence_length, hidden_size)`) -- Последовательность скрытых состояний на выходе последнего слоя модели.
- **pooler_output** (`torch.Tensor` формы `(batch_size, hidden_size)`) -- Скрытое состояние последнего слоя для первого токена последовательности (токен классификации) после дополнительной обработки слоями, используемыми для вспомогательной задачи предварительного обучения. Например, для моделей семейства BERT это возвращает токен классификации после обработки линейным слоем и функцией активации tanh. Веса линейного слоя обучаются по задаче предсказания следующего предложения (классификации) во время предварительного обучения.
- **hidden_states** (`tuple(torch.Tensor)`, *необязательный*, возвращается при передаче `output_hidden_states=True` или когда `config.output_hidden_states=True`) -- Кортеж `torch.Tensor` (один для вывода слоя встраиваний, если модель имеет слой встраиваний, + один для вывода каждого слоя) формы `(batch_size, sequence_length, hidden_size)`.

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

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

