Transformers 4.37 中文文档(九十二)(2)https://developer.aliyun.com/article/1563882
PerceiverConfig
class transformers.PerceiverConfig
( num_latents = 256 d_latents = 1280 d_model = 768 num_blocks = 1 num_self_attends_per_block = 26 num_self_attention_heads = 8 num_cross_attention_heads = 8 qk_channels = None v_channels = None cross_attention_shape_for_attention = 'kv' self_attention_widening_factor = 1 cross_attention_widening_factor = 1 hidden_act = 'gelu' attention_probs_dropout_prob = 0.1 initializer_range = 0.02 layer_norm_eps = 1e-12 use_query_residual = True vocab_size = 262 max_position_embeddings = 2048 image_size = 56 train_size = [368, 496] num_frames = 16 audio_samples_per_frame = 1920 samples_per_patch = 16 output_shape = [1, 16, 224, 224] output_num_channels = 512 _label_trainable_num_channels = 1024 **kwargs )
参数
num_latents
(int
, 可选, 默认为 256) — 潜在嵌入的数量。d_latents
(int
, 可选, 默认为 1280) — 潜在嵌入的维度。d_model
(int
, 可选, 默认为 768) — 输入的维度。仅在使用[PerceiverTextPreprocessor]或未提供预处理器时提供。num_blocks
(int
, 可选, 默认为 1) — Transformer 编码器中的块数。num_self_attends_per_block
(int
, 可选, 默认为 26) — 每个块中的自注意力层的数量。num_self_attention_heads
(int
, 可选, 默认为 8) — Transformer 编码器中每个自注意力层的注意力头数。num_cross_attention_heads
(int
, 可选, 默认为 8) — Transformer 编码器中每个交叉注意力层的注意力头数。qk_channels
(int
, 可选) — 在编码器的交叉注意力和自注意力层中应用注意力之前投影查询+键的维度。如果未指定,将默认保留查询的维度。v_channels
(int
, 可选) — 在编码器的交叉注意力和自注意力层中应用注意力之前投影值的维度。如果未指定,将默认保留查询的维度。cross_attention_shape_for_attention
(str
, 可选, 默认为"kv"
) — 在编码器的交叉注意力层中降采样查询和键时使用的维度。self_attention_widening_factor
(int
, 可选, 默认为 1) — Transformer 编码器中交叉注意力层中前馈层的维度。cross_attention_widening_factor
(int
, 可选, 默认为 1) — Transformer 编码器中自注意力层中前馈层的维度。hidden_act
(str
或function
, 可选, 默认为"gelu"
) — 编码器和池化器中的非线性激活函数(函数或字符串)。如果是字符串,支持"gelu"
、"relu"
、"selu"
和"gelu_new"
。attention_probs_dropout_prob
(float
, 可选, 默认为 0.1) — 注意力概率的丢弃比率。initializer_range
(float
, 可选, 默认为 0.02) — 用于初始化所有权重矩阵的截断正态初始化器的标准差。layer_norm_eps
(float
, 可选, 默认为 1e-12) — 层归一化层使用的 epsilon。use_query_residual
(float
, optional, defaults toTrue
) — 是否在编码器的交叉注意力层中添加查询残差。vocab_size
(int
, optional, defaults to 262) — 用于掩码语言建模模型的词汇量。max_position_embeddings
(int
, optional, defaults to 2048) — 掩码语言建模模型可能使用的最大序列长度。通常将其设置为较大的值以防万一(例如,512、1024 或 2048)。image_size
(int
, optional, defaults to 56) — 预处理后的图像大小,用于 PerceiverForImageClassificationLearned。train_size
(List[int]
, optional, defaults to[368, 496]
) — 光流模型图像的训练大小。num_frames
(int
, optional, defaults to 16) — 多模态自编码模型中使用的视频帧数。audio_samples_per_frame
(int
, optional, defaults to 1920) — 多模态自编码模型中每帧的音频样本数。samples_per_patch
(int
, optional, defaults to 16) — 在预处理音频时,每个补丁的音频样本数,用于多模态自编码模型。output_shape
(List[int]
, optional, defaults to[1, 16, 224, 224]
) — 多模态自编码模型视频解码器查询的输出形状(批量大小、帧数、高度、宽度)。这不包括通道维度。output_num_channels
(int
, optional, defaults to 512) — 每个模态解码器的输出通道数。
这是用于存储 PerceiverModel 配置的配置类。它用于根据指定的参数实例化 Perceiver 模型,定义模型架构。使用默认值实例化配置将产生类似于 Perceiver deepmind/language-perceiver 架构的配置。
配置对象继承自 PretrainedConfig,可用于控制模型输出。阅读来自 PretrainedConfig 的文档以获取更多信息。
示例:
>>> from transformers import PerceiverModel, PerceiverConfig >>> # Initializing a Perceiver deepmind/language-perceiver style configuration >>> configuration = PerceiverConfig() >>> # Initializing a model from the deepmind/language-perceiver style configuration >>> model = PerceiverModel(configuration) >>> # Accessing the model configuration >>> configuration = model.config
PerceiverTokenizer
class transformers.PerceiverTokenizer
( pad_token = '[PAD]' bos_token = '[BOS]' eos_token = '[EOS]' mask_token = '[MASK]' cls_token = '[CLS]' sep_token = '[SEP]' model_max_length = 2048 **kwargs )
参数
pad_token
(str
, optional, defaults to"[PAD]"
) — 用于填充的标记,例如在批处理不同长度的序列时使用。bos_token
(str
, optional, defaults to"[BOS]"
) — BOS 标记(在词汇表中保留,但实际上未使用)。eos_token
(str
, optional, defaults to"[EOS]"
) — 序列结束标记(在词汇表中保留,但实际上未使用)。
在使用特殊标记构建序列时,这不是用于序列结尾的标记。实际使用的标记是sep_token
。mask_token
(str
, optional, defaults to"[MASK]"
) — MASK 标记,用于掩码语言建模。cls_token
(str
, optional, defaults to"[CLS]"
) — CLS 标记(在词汇表中保留,但实际上未使用)。sep_token
(str
, optional, defaults to"[SEP]"
) — 用于从两个序列构建序列时使用的分隔符标记。
构建一个 Perceiver 标记器。Perceiver 简单地使用原始字节 utf-8 编码。
此标记器继承自 PreTrainedTokenizer,其中包含大多数主要方法。用户应参考此超类以获取有关这些方法的更多信息。
__call__
( text: Union = None text_pair: Union = None text_target: Union = None text_pair_target: Union = None add_special_tokens: bool = True padding: Union = False truncation: Union = None max_length: Optional = None stride: int = 0 is_split_into_words: bool = False pad_to_multiple_of: Optional = None return_tensors: Union = None return_token_type_ids: Optional = None return_attention_mask: Optional = None return_overflowing_tokens: bool = False return_special_tokens_mask: bool = False return_offsets_mapping: bool = False return_length: bool = False verbose: bool = True **kwargs ) → export const metadata = 'undefined';BatchEncoding
参数
text
(str
,List[str]
,List[List[str]]
, 可选) — 要编码的序列或序列批次。每个序列可以是字符串或字符串列表(预分词字符串)。如果序列以字符串列表(预分词)的形式提供,则必须设置is_split_into_words=True
(以消除与序列批次的歧义)。text_pair
(str
,List[str]
,List[List[str]]
, 可选) — 要编码的序列或序列批次。每个序列可以是字符串或字符串列表(预分词字符串)。如果序列以字符串列表(预分词)的形式提供,则必须设置is_split_into_words=True
(以消除与序列批次的歧义)。text_target
(str
,List[str]
,List[List[str]]
, 可选) — 要编码为目标文本的序列或序列批次。每个序列可以是字符串或字符串列表(预分词字符串)。如果序列以字符串列表(预分词)的形式提供,则必须设置is_split_into_words=True
(以消除与序列批次的歧义)。text_pair_target
(str
,List[str]
,List[List[str]]
, 可选) — 要编码为目标文本的序列或序列批次。每个序列可以是字符串或字符串列表(预分词字符串)。如果序列以字符串列表(预分词)的形式提供,则必须设置is_split_into_words=True
(以消除与序列批次的歧义)。add_special_tokens
(bool
, 可选, 默认为True
) — 在编码序列时是否添加特殊标记。这将使用底层的PretrainedTokenizerBase.build_inputs_with_special_tokens
函数,该函数定义了自动添加到输入 id 的标记。如果要自动添加bos
或eos
标记,则这很有用。padding
(bool
,str
或 PaddingStrategy, 可选, 默认为False
) — 激活和控制填充。接受以下值:
True
或'longest'
: 填充到批次中最长的序列(如果只提供单个序列,则不进行填充)。'max_length'
: 填充到指定的最大长度(使用参数max_length
)或模型的最大可接受输入长度(如果未提供该参数)。False
或'do_not_pad'
(默认): 不进行填充(即可以输出长度不同的序列批次)。
truncation
(bool
,str
或 TruncationStrategy, 可选, 默认为False
) — 激活和控制截断。接受以下值:
True
或'longest_first'
: 截断到指定的最大长度(使用参数max_length
)或模型的最大可接受输入长度(如果未提供该参数)。如果提供了一对序列(或一批对序列),则将逐标记截断,从一对序列中最长的序列中删除一个标记。'only_first'
: 截断到指定的最大长度(使用参数max_length
)或模型的最大可接受输入长度(如果未提供该参数)。如果提供了一对序列(或一批对序列),则只会截断第一个序列。'only_second'
: 截断到指定的最大长度(使用参数max_length
)或模型的最大可接受输入长度(如果未提供该参数)。如果提供了一对序列(或一批对序列),则只会截断第二个序列。False
或'do_not_truncate'
(默认): 不截断(即可以输出长度大于模型最大可接受输入大小的批次)。
max_length
(int
, optional) — 控制截断/填充参数之一使用的最大长度。
如果未设置或设置为None
,则如果截断/填充参数之一需要最大长度,则将使用预定义的模型最大长度。如果模型没有特定的最大输入长度(如 XLNet),则将禁用截断/填充到最大长度。stride
(int
, optional, 默认为 0) — 如果与max_length
一起设置为一个数字,则当return_overflowing_tokens=True
时返回的溢出标记将包含截断序列末尾的一些标记,以提供截断和溢出序列之间的一些重叠。此参数的值定义重叠标记的数量。is_split_into_words
(bool
, optional, 默认为False
) — 输入是否已经预先标记化(例如,已分割为单词)。如果设置为True
,分词器会假定输入已经分割为单词(例如,通过在空格上分割),然后对其进行标记化。这对于 NER 或标记分类很有用。pad_to_multiple_of
(int
, optional) — 如果设置,将填充序列到提供的值的倍数。需要激活padding
。这对于在具有计算能力>= 7.5
(Volta)的 NVIDIA 硬件上启用 Tensor Cores 特别有用。return_tensors
(str
或 TensorType, optional) — 如果设置,将返回张量而不是 Python 整数列表。可接受的值为:
'tf'
:返回 TensorFlowtf.constant
对象。'pt'
:返回 PyTorchtorch.Tensor
对象。'np'
:返回 Numpynp.ndarray
对象。
return_token_type_ids
(bool
, optional) — 是否返回标记类型 ID。如果保持默认设置,将根据特定分词器的默认值返回标记类型 ID,由return_outputs
属性定义。
什么是标记类型 ID?return_attention_mask
(bool
, optional) — 是否返回注意力掩码。如果保持默认设置,将根据特定分词器的默认值返回注意力掩码,由return_outputs
属性定义。
什么是注意力掩码?return_overflowing_tokens
(bool
, optional, 默认为False
) — 是否返回溢出的标记序列。如果提供了一对输入 id 序列(或一批对),并且truncation_strategy = longest_first
或True
,则会引发错误,而不是返回溢出标记。return_special_tokens_mask
(bool
, optional, 默认为False
) — 是否返回特殊标记掩码信息。return_offsets_mapping
(bool
, optional, 默认为False
) — 是否返回每个标记的(char_start, char_end)
。
这仅适用于继承自 PreTrainedTokenizerFast 的快速分词器,如果使用 Python 的分词器,此方法将引发NotImplementedError
。return_length
(bool
, optional, 默认为False
) — 是否返回编码输入的长度。verbose
(bool
, optional, 默认为True
) — 是否打印更多信息和警告。**kwargs — 传递给self.tokenize()
方法
返回
BatchEncoding
具有以下字段的 BatchEncoding:
input_ids
— 要馈送到模型的标记 id 列表。
什么是输入 ID?token_type_ids
— 要馈送到模型的标记类型 id 列表(当return_token_type_ids=True
或self.model_input_names
中包含*token_type_ids
*时)。
什么是标记类型 ID?attention_mask
— 指定哪些令牌应该被模型关注的索引列表(当return_attention_mask=True
或self.model_input_names
中包含*attention_mask
*时)。
什么是注意力掩码?overflowing_tokens
— 溢出的令牌序列列表(当指定max_length
并且return_overflowing_tokens=True
时)。num_truncated_tokens
— 截断的令牌数(当指定max_length
并且return_overflowing_tokens=True
时)。special_tokens_mask
— 由 0 和 1 组成的列表,其中 1 指定添加的特殊令牌,0 指定常规序列令牌(当add_special_tokens=True
和return_special_tokens_mask=True
时)。length
— 输入的长度(当return_length=True
时)
用于对一个或多个序列或一个或多个序列对进行标记和准备模型的主要方法。
感知器特征提取器
class transformers.PerceiverFeatureExtractor
( *args **kwargs )
__call__
( images **kwargs )
预处理图像或一批图像。
感知器图像处理器
class transformers.PerceiverImageProcessor
( do_center_crop: bool = True crop_size: Dict = None do_resize: bool = True size: Dict = None resample: Resampling = <Resampling.BICUBIC: 3> do_rescale: bool = True rescale_factor: Union = 0.00392156862745098 do_normalize: bool = True image_mean: Union = None image_std: Union = None **kwargs )
参数
do_center_crop
(bool
,可选
,默认为True
) — 是否对图像进行中心裁剪。如果输入尺寸小于任何边的crop_size
,则图像将填充零,然后进行中心裁剪。可以被preprocess
方法中的do_center_crop
参数覆盖。crop_size
(Dict[str, int]
,可选,默认为{"height" -- 256, "width": 256}
): 应用中心裁剪时的期望输出大小。可以被preprocess
方法中的crop_size
参数覆盖。do_resize
(bool
,可选,默认为True
) — 是否将图像调整大小为(size["height"], size["width"])
。可以被preprocess
方法中的do_resize
参数覆盖。size
(Dict[str, int]
可选,默认为{"height" -- 224, "width": 224}
): 调整大小后的图像尺寸。可以被preprocess
方法中的size
参数覆盖。resample
(PILImageResampling
,可选,默认为PILImageResampling.BICUBIC
) — 定义在调整图像大小时要使用的重采样滤波器。可以被preprocess
方法中的resample
参数覆盖。do_rescale
(bool
,可选,默认为True
) — 是否按指定比例rescale_factor
重新缩放图像。可以被preprocess
方法中的do_rescale
参数覆盖。rescale_factor
(int
或float
,可选,默认为1/255
) — 定义重新缩放图像时要使用的比例因子。可以被preprocess
方法中的rescale_factor
参数覆盖。do_normalize — 是否对图像进行归一化。可以被preprocess
方法中的do_normalize
参数覆盖。image_mean
(float
或List[float]
,可选,默认为IMAGENET_STANDARD_MEAN
) — 如果对图像进行归一化,则使用的均值。这是一个浮点数或与图像通道数相同长度的浮点数列表。可以被preprocess
方法中的image_mean
参数覆盖。image_std
(float
或List[float]
,可选,默认为IMAGENET_STANDARD_STD
) — 如果对图像进行归一化,则使用的标准差。这是一个浮点数或与图像通道数相同长度的浮点数列表。可以被preprocess
方法中的image_std
参数覆盖。
构建感知器图像处理器。
preprocess
( images: Union do_center_crop: Optional = None crop_size: Optional = None do_resize: Optional = None size: Optional = None resample: Resampling = None do_rescale: Optional = None rescale_factor: Optional = None do_normalize: Optional = None image_mean: Union = None image_std: Union = None return_tensors: Union = None data_format: ChannelDimension = <ChannelDimension.FIRST: 'channels_first'> input_data_format: Union = None **kwargs )
参数
images
(ImageInput
) — 要预处理的图像。期望单个图像或图像批次,像素值范围为 0 到 255。如果传入像素值在 0 到 1 之间的图像,请设置do_rescale=False
。do_center_crop
(bool
, optional, defaults toself.do_center_crop
) — 是否将图像居中裁剪到crop_size
。crop_size
(Dict[str, int]
, optional, defaults toself.crop_size
) — 应用中心裁剪后的期望输出大小。do_resize
(bool
, optional, defaults toself.do_resize
) — 是否调整图像大小。size
(Dict[str, int]
, optional, defaults toself.size
) — 调整大小后的图像尺寸。resample
(int
, optional, defaults toself.resample
) — 如果调整图像大小,则使用的重采样滤波器。这可以是枚举PILImageResampling
中的一个。仅在do_resize
设置为True
时有效。do_rescale
(bool
, optional, defaults toself.do_rescale
) — 是否重新缩放图像。rescale_factor
(float
, optional, defaults toself.rescale_factor
) — 如果do_rescale
设置为True
,则重新缩放图像的重新缩放因子。do_normalize
(bool
, optional, defaults toself.do_normalize
) — 是否对图像进行归一化。image_mean
(float
orList[float]
, optional, defaults toself.image_mean
) — 图像均值。image_std
(float
orList[float]
, optional, defaults toself.image_std
) — 图像标准差。return_tensors
(str
orTensorType
, optional) — 要返回的张量类型。可以是以下之一:
- 未设置:返回一个
np.ndarray
列表。 TensorType.TENSORFLOW
或'tf'
: 返回类型为tf.Tensor
的批次。TensorType.PYTORCH
或'pt'
: 返回类型为torch.Tensor
的批次。TensorType.NUMPY
或'np'
: 返回类型为np.ndarray
的批次。TensorType.JAX
或'jax'
: 返回类型为jax.numpy.ndarray
的批次。
data_format
(ChannelDimension
或str
, optional, defaults toChannelDimension.FIRST
) — 输出图像的通道维度格式。可以是以下之一:
ChannelDimension.FIRST
: 图像格式为(num_channels, height, width)。ChannelDimension.LAST
: 图像格式为(height, width, num_channels)。
input_data_format
(ChannelDimension
或str
, optional) — 输入图像的通道维度格式。如果未设置,则从输入图像中推断通道维度格式。可以是以下之一:
"channels_first"
或ChannelDimension.FIRST
: 图像格式为(num_channels, height, width)。"channels_last"
或ChannelDimension.LAST
: 图像格式为(height, width, num_channels)。"none"
或ChannelDimension.NONE
: 图像格式为(height, width)。
对图像或图像批次进行预处理。
PerceiverTextPreprocessor
class transformers.models.perceiver.modeling_perceiver.PerceiverTextPreprocessor
( config: PerceiverConfig )
参数
config
(PerceiverConfig) — 模型配置。
Perceiver 编码器的文本预处理。可用于嵌入inputs
并添加位置编码。
嵌入的维度由配置的d_model
属性确定。
PerceiverImagePreprocessor
class transformers.models.perceiver.modeling_perceiver.PerceiverImagePreprocessor
( config prep_type = 'conv' spatial_downsample: int = 4 temporal_downsample: int = 1 position_encoding_type: str = 'fourier' in_channels: int = 3 out_channels: int = 64 conv_after_patching: bool = False conv_after_patching_in_channels: int = 54 conv2d_use_batchnorm: bool = True concat_or_add_pos: str = 'concat' project_pos_dim: int = -1 **position_encoding_kwargs )
参数
config
([PerceiverConfig]) — 模型配置。prep_type
(str
, optional, defaults to"conv"
) — 预处理类型。可以是“conv1x1”,"conv"
,“patches”,“pixels”。spatial_downsample
(int
, optional, defaults to 4) — 空间下采样因子。temporal_downsample
(int
, optional, defaults to 1) — 时间下采样因子(仅在存在时间维度的情况下相关)。position_encoding_type
(str
, 可选, 默认为"fourier"
) — 位置编码类型。可以是"fourier"
或“trainable”。in_channels
(int
, 可选, 默认为 3) — 输入中的通道数。out_channels
(int
, 可选, 默认为 64) — 输出中的通道数。conv_after_patching
(bool
, 可选, 默认为False
) — 是否在修补后应用卷积层。conv_after_patching_in_channels
(int
, 可选, 默认为 54) — 修补后卷积层输入中的通道数。conv2d_use_batchnorm
(bool
, 可选, 默认为True
) — 是否在卷积层中使用批量归一化。concat_or_add_pos
(str
, 可选, 默认为"concat"
) — 如何将位置编码连接到输入。可以是"concat"
或“add”。project_pos_dim
(int
, 可选, 默认为-1) — 要投影到的位置编码的维度。如果为-1,则不应用投影。- *
*position_encoding_kwargs
(Dict
, 可选) — 位置编码的关键字参数。
感知器编码器的图像预处理。
注意:out_channels参数指的是卷积层的输出通道数,如果prep_type设置为“conv1x1”或“conv”。如果添加绝对位置嵌入,必须确保位置编码 kwargs 的num_channels设置为out_channels。
感知器独热预处理器
class transformers.models.perceiver.modeling_perceiver.PerceiverOneHotPreprocessor
( config: PerceiverConfig )
参数
config
(PerceiverConfig) — 模型配置。
感知器编码器的独热预处理器。可用于向输入添加一个虚拟索引维度。
感知器音频预处理器
class transformers.models.perceiver.modeling_perceiver.PerceiverAudioPreprocessor
( config prep_type: str = 'patches' samples_per_patch: int = 96 position_encoding_type: str = 'fourier' concat_or_add_pos: str = 'concat' out_channels = 64 project_pos_dim = -1 **position_encoding_kwargs )
参数
config
([PerceiverConfig]) — 模型配置。prep_type
(str
, 可选, 默认为"patches"
) — 要使用的预处理器类型。仅支持"patches"
。samples_per_patch
(int
, 可选, 默认为 96) — 每个修补的样本数。position_encoding_type
(str
, 可选, 默认为"fourier"
) — 要使用的位置编码类型。可以是“trainable”或"fourier"
。concat_or_add_pos
(str
, 可选, 默认为"concat"
) — 如何将位置编码连接到输入。可以是"concat"
或“add”。out_channels
(int
, 可选, 默认为 64) — 输出中的通道数。project_pos_dim
(int
, 可选, 默认为-1) — 要投影到的位置编码的维度。如果为-1,则不应用投影。- *
*position_encoding_kwargs
(Dict
, 可选) — 位置编码的关键字参数。
感知器编码器的音频预处理。
感知器多模态预处理器
class transformers.models.perceiver.modeling_perceiver.PerceiverMultimodalPreprocessor
( modalities: Mapping mask_probs: Optional = None min_padding_size: int = 2 )
参数
modalities
(Mapping[str, PreprocessorType]
) — 将模态名称映射到预处理器的字典。mask_probs
(Dict[str, float]
) — 将模态名称映射到该模态的掩蔽概率的字典。min_padding_size
(int
, 可选, 默认为 2) — 所有模态的最小填充大小。最终输出将具有通道数,等于所有模态中最大通道数加上 min_padding_size。
感知器编码器的多模态预处理。
对每个模态进行预处理,然后使用可训练的位置嵌入进行填充,以具有相同数量的通道。
感知器投影解码器
class transformers.models.perceiver.modeling_perceiver.PerceiverProjectionDecoder
( config )
参数
config
(PerceiverConfig)— 模型配置。
基准投影解码器(无交叉注意力)。
PerceiverBasicDecoder
class transformers.models.perceiver.modeling_perceiver.PerceiverBasicDecoder
( config: PerceiverConfig output_num_channels: int position_encoding_type: Optional = 'trainable' output_index_dims: Optional = None num_channels: Optional = 128 subsampled_index_dims: Optional = None qk_channels: Optional = None v_channels: Optional = None num_heads: Optional = 1 widening_factor: Optional = 1 use_query_residual: Optional = False concat_preprocessed_input: Optional = False final_project: Optional = True position_encoding_only: Optional = False **position_encoding_kwargs )
参数
config
([PerceiverConfig])— 模型配置。output_num_channels
(int
,optional)— 输出中的通道数。仅在设置final_project为True
时使用。position_encoding_type
(str
, optional, defaults to “trainable”) — 使用的位置编码类型。可以是“trainable”、“fourier”或“none”。output_index_dims
(int
,optional)— 输出查询的维度数。如果‘position_encoding_type’ == ‘none’,则忽略。num_channels
(int
,optional,默认为 128)— 解码器查询的通道数。如果‘position_encoding_type’ == ‘none’,则忽略。qk_channels
(int
,optional)— 交叉注意力层中查询和键的通道数。v_channels
(int
,optional)— 交叉注意力层中值的通道数。num_heads
(int
,optional,默认为 1)— 交叉注意力层中的注意力头数。widening_factor
(int
,optional,默认为 1)— 交叉注意力层的扩展因子。use_query_residual
(bool
,optional,默认为False
)— 是否在查询和交叉注意力层的输出之间使用残差连接。concat_preprocessed_input
(bool
,optional,默认为False
)— 是否将预处理输入连接到查询。final_project
(bool
,optional,默认为True
)— 是否将交叉注意力层的输出投影到目标维度。position_encoding_only
(bool
,optional,默认为False
)— 是否仅使用此类来定义输出查询。
基于交叉注意力的解码器。此类可用于使用交叉注意力操作解码潜在状态的最终隐藏状态,其中潜在状态生成键和值。
此类的输出形状取决于如何定义输出查询(也称为解码器查询)。
PerceiverClassificationDecoder
class transformers.models.perceiver.modeling_perceiver.PerceiverClassificationDecoder
( config **decoder_kwargs )
参数
config
(PerceiverConfig)— 模型配置。
基于交叉注意力的分类解码器。用于逻辑输出的轻量级PerceiverBasicDecoder
包装器。将 Perceiver 编码器的输出(形状为(batch_size,num_latents,d_latents))转换为形状为(batch_size,num_labels)的张量。查询的形状为(batch_size,1,num_labels)。
PerceiverOpticalFlowDecoder
class transformers.models.perceiver.modeling_perceiver.PerceiverOpticalFlowDecoder
( config output_image_shape output_num_channels = 2 rescale_factor = 100.0 **decoder_kwargs )
基于交叉注意力的光流解码器。
PerceiverBasicVideoAutoencodingDecoder
class transformers.models.perceiver.modeling_perceiver.PerceiverBasicVideoAutoencodingDecoder
( config: PerceiverConfig output_shape: List position_encoding_type: str **decoder_kwargs )
参数
config
([PerceiverConfig])— 模型配置。output_shape
(List[int]
) — 输出的形状为(batch_size, num_frames, height, width),不包括通道维度。position_encoding_type
(str
) — 要使用的位置编码类型。可以是“trainable”、“fourier”或“none”。
基于交叉注意力的视频自编码解码器。[PerceiverBasicDecoder]的轻量级包装器,具有视频重塑逻辑。
PerceiverMultimodalDecoder
class transformers.models.perceiver.modeling_perceiver.PerceiverMultimodalDecoder
( config: PerceiverConfig modalities: Dict num_outputs: int output_num_channels: int min_padding_size: Optional = 2 subsampled_index_dims: Optional = None **decoder_kwargs )
参数
config
([PerceiverConfig]) — 模型配置。modalities
(Dict[str, PerceiverAbstractDecoder]
) — 将模态名称映射到该模态的解码器的字典。num_outputs
(int
) — 解码器的输出数量。output_num_channels
(int
) — 输出中的通道数。min_padding_size
(int
, optional, 默认为 2) — 所有模态的最小填充大小。最终输出将具有通道数等于所有模态中最大通道数加上 min_padding_size。subsampled_index_dims
(Dict[str, PerceiverAbstractDecoder]
, optional) — 将模态名称映射到用于该模态解码器查询的子采样索引维度的字典。
通过组合单模解码器进行多模解码。构造函数的modalities参数是一个将模态名称映射到该模态的解码器的字典。该解码器将用于构造该模态的查询。特定于模态的查询使用可训练的特定于模态的参数进行填充,然后沿时间维度连接。
接下来,所有模态之间都有一个共享的交叉注意力操作。
Transformers 4.37 中文文档(九十二)(4)https://developer.aliyun.com/article/1563885