Transformers 4.37 中文文档(七十五)(1)https://developer.aliyun.com/article/1564207
ClapTextModel
class transformers.ClapTextModel
( config add_pooling_layer = True )
该模型可以作为编码器(仅具有自注意力)以及解码器的行为,此时在自注意力层之间添加了一层交叉注意力,遵循 Attention is all you need_ 中描述的架构,作者为 Ashish Vaswani, Noam Shazeer, Niki Parmar, Jakob Uszkoreit, Llion Jones, Aidan N. Gomez, Lukasz Kaiser 和 Illia Polosukhin。
要使模型行为像一个解码器,需要使用配置中的 is_decoder 参数设置为 True 来初始化模型。要在 Seq2Seq 模型中使用,模型需要使用 is_decoder 参数和 add_cross_attention 都设置为 True 来初始化;然后预期在前向传递中输入一个 encoder_hidden_states。
… _注意力就是你所需要的: arxiv.org/abs/1706.03762
forward
( input_ids: Optional = None attention_mask: Optional = None token_type_ids: Optional = None position_ids: Optional = None head_mask: Optional = None inputs_embeds: Optional = None encoder_hidden_states: Optional = None encoder_attention_mask: Optional = None past_key_values: Optional = None use_cache: Optional = None output_attentions: Optional = None output_hidden_states: Optional = None return_dict: Optional = None )
encoder_hidden_states(形状为(batch_size, sequence_length, hidden_size)的torch.FloatTensor,可选):编码器最后一层的隐藏状态序列。如果模型配置为解码器,则用于交叉注意力。encoder_attention_mask(形状为(batch_size, sequence_length)的torch.FloatTensor,可选):避免在编码器输入的填充标记索引上执行注意力的掩码。如果模型配置为解码器,则在交叉注意力中使用此掩码。掩码值选择在[0, 1]之间:
- 对于未被
masked的标记为 1, - 对于被
masked的标记为 0。past_key_values(长度为config.n_layers的tuple(tuple(torch.FloatTensor)),每个元组包含 4 个形状为(batch_size, num_heads, sequence_length - 1, embed_size_per_head)的张量):包含注意力块的预计算键和值隐藏状态。可用于加速解码。
如果使用past_key_values,用户可以选择仅输入最后一个decoder_input_ids(那些没有将它们的过去键值状态提供给此模型的)的形状为(batch_size, 1)的张量,而不是形状为(batch_size, sequence_length)的所有decoder_input_ids。use_cache(bool,可选):如果设置为True,则返回past_key_values键值状态,并可用于加速解码(参见past_key_values)。
ClapTextModelWithProjection
class transformers.ClapTextModelWithProjection
( config: ClapTextConfig )
参数
config(ClapConfig)— 包含模型所有参数的模型配置类。使用配置文件初始化不会加载与模型关联的权重,只加载配置。查看 from_pretrained()方法以加载模型权重。
带有顶部投影层的 CLAP 文本模型(在汇总输出的顶部有一个线性层)。
这个模型继承自 PreTrainedModel。查看超类文档以获取库为所有模型实现的通用方法(例如下载或保存、调整输入嵌入、修剪头等)。
这个模型也是一个 PyTorch torch.nn.Module子类。将其用作常规的 PyTorch 模块,并参考 PyTorch 文档以获取与一般用法和行为相关的所有内容。
forward
( input_ids: Optional = None attention_mask: Optional = None position_ids: Optional = None output_attentions: Optional = None output_hidden_states: Optional = None return_dict: Optional = None ) → export const metadata = 'undefined';transformers.models.clap.modeling_clap.ClapTextModelOutput or tuple(torch.FloatTensor)
参数
input_ids(形状为(batch_size, sequence_length)的torch.LongTensor)— 词汇表中输入序列标记的索引。默认情况下将忽略填充。
可以使用 AutoTokenizer 获取索引。查看 PreTrainedTokenizer.encode()和 PreTrainedTokenizer.call()获取详细信息。
什么是输入 ID?attention_mask(形状为(batch_size, sequence_length)的torch.Tensor,可选)— 用于避免在填充标记索引上执行注意力的掩码。掩码值选择在[0, 1]之间:
- 对于未被
masked的标记为 1, - 对于被
masked的标记为 0。
- 什么是注意力掩码?
position_ids(形状为(batch_size, sequence_length)的torch.LongTensor,可选)— 每个输入序列标记在位置嵌入中的位置索引。选择范围为[0, config.max_position_embeddings - 1]。
什么是位置 ID?output_attentions(bool, optional) — 是否返回所有注意力层的注意力张量。有关更多详细信息,请参阅返回张量下的attentions。output_hidden_states(bool, optional) — 是否返回所有层的隐藏状态。有关更多详细信息,请参阅返回张量下的hidden_states。return_dict(bool, optional) — 是否返回 ModelOutput 而不是普通元组。
返回
transformers.models.clap.modeling_clap.ClapTextModelOutput或tuple(torch.FloatTensor)
一个transformers.models.clap.modeling_clap.ClapTextModelOutput或一个torch.FloatTensor元组(如果传递return_dict=False或config.return_dict=False)包含根据配置()和输入的各种元素。
text_embeds(torch.FloatTensorof shape(batch_size, output_dim)optional 当模型初始化为with_projection=True时返回) — 通过将投影层应用于 pooler_output 获得的文本嵌入。last_hidden_state(torch.FloatTensorof shape(batch_size, sequence_length, hidden_size)) — 模型最后一层的隐藏状态序列。hidden_states(tuple(torch.FloatTensor), optional, 当传递output_hidden_states=True或config.output_hidden_states=True时返回) — 形状为(batch_size, sequence_length, hidden_size)的torch.FloatTensor元组(一个用于嵌入的输出,如果模型有嵌入层,+ 一个用于每个层的输出)。
模型在每一层输出的隐藏状态以及可选的初始嵌入输出。attentions(tuple(torch.FloatTensor), optional, 当传递output_attentions=True或config.output_attentions=True时返回) — 形状为(batch_size, num_heads, sequence_length, sequence_length)的torch.FloatTensor元组(每层一个)。
注意力权重在注意力 softmax 之后,用于计算自注意力头中的加权平均值。
ClapTextModelWithProjection 的前向方法,覆盖了__call__特殊方法。
尽管前向传递的步骤需要在此函数内定义,但应该在此之后调用Module实例,而不是在此处调用,因为前者负责运行预处理和后处理步骤,而后者会默默忽略它们。
示例:
>>> from transformers import AutoTokenizer, ClapTextModelWithProjection >>> model = ClapTextModelWithProjection.from_pretrained("laion/clap-htsat-unfused") >>> tokenizer = AutoTokenizer.from_pretrained("laion/clap-htsat-unfused") >>> inputs = tokenizer(["a sound of a cat", "a sound of a dog"], padding=True, return_tensors="pt") >>> outputs = model(**inputs) >>> text_embeds = outputs.text_embeds
ClapAudioModel
class transformers.ClapAudioModel
( config: ClapAudioConfig )
forward
( input_features: Optional = None is_longer: Optional = None output_attentions: Optional = None output_hidden_states: Optional = None return_dict: Optional = None ) → export const metadata = 'undefined';transformers.modeling_outputs.BaseModelOutputWithPooling or tuple(torch.FloatTensor)
参数
input_features(torch.FloatTensorof shape(batch_size, num_channels, height, width)) — 输入音频特征。这应该由 ClapFeatureExtractor 类返回,您也可以从 AutoFeatureExtractor 中检索。有关详细信息,请参阅ClapFeatureExtractor.__call__()。is_longer(torch.FloatTensor, 形状为(batch_size, 1), optional) — 音频剪辑是否比max_length更长。如果为True,将启用特征融合以增强特征。output_attentions(bool, optional) — 是否返回所有注意力层的注意力张量。有关更多详细信息,请参阅返回张量下的attentions。output_hidden_states(bool, optional) — 是否返回所有层的隐藏状态。有关更多详细信息,请参阅返回张量下的hidden_states。return_dict(bool,可选)- 是否返回 ModelOutput 而不是普通元组。
返回
transformers.modeling_outputs.BaseModelOutputWithPooling 或tuple(torch.FloatTensor)
一个 transformers.modeling_outputs.BaseModelOutputWithPooling 或一个torch.FloatTensor元组(如果传递了return_dict=False或config.return_dict=False时)包括各种元素,取决于配置()和输入。
last_hidden_state(形状为(batch_size, sequence_length, hidden_size)的torch.FloatTensor)- 模型最后一层的隐藏状态序列输出。pooler_output(形状为(batch_size, hidden_size)的torch.FloatTensor)- 经过用于辅助预训练任务的层进一步处理后的序列的第一个标记(分类标记)的最后一层隐藏状态。例如,对于 BERT 系列模型,这返回经过线性层和 tanh 激活函数处理后的分类标记。线性层的权重是在预训练期间从下一个句子预测(分类)目标中训练的。hidden_states(tuple(torch.FloatTensor),可选,当传递output_hidden_states=True或config.output_hidden_states=True时返回)- 形状为(batch_size, sequence_length, hidden_size)的torch.FloatTensor元组(如果模型有嵌入层,则为嵌入输出的输出+每层的输出)。
模型在每一层输出的隐藏状态以及可选的初始嵌入输出。attentions(tuple(torch.FloatTensor),可选,当传递output_attentions=True或config.output_attentions=True时返回)- 形状为(batch_size, num_heads, sequence_length, sequence_length)的torch.FloatTensor元组(每层一个)。
注意力 softmax 后的注意力权重,用于计算自注意力头中的加权平均值。
ClapAudioModel 的前向方法,覆盖了__call__特殊方法。
虽然前向传递的步骤需要在此函数内定义,但应该在此之后调用Module实例,而不是这个,因为前者负责运行预处理和后处理步骤,而后者会默默地忽略它们。
示例:
>>> from datasets import load_dataset >>> from transformers import AutoProcessor, ClapAudioModel >>> dataset = load_dataset("ashraq/esc50") >>> audio_sample = dataset["train"]["audio"][0]["array"] >>> model = ClapAudioModel.from_pretrained("laion/clap-htsat-fused") >>> processor = AutoProcessor.from_pretrained("laion/clap-htsat-fused") >>> inputs = processor(audios=audio_sample, return_tensors="pt") >>> outputs = model(**inputs) >>> last_hidden_state = outputs.last_hidden_state
ClapAudioModelWithProjection
class transformers.ClapAudioModelWithProjection
( config: ClapAudioConfig )
参数
config(ClapConfig)- 包含模型所有参数的模型配置类。使用配置文件初始化不会加载与模型关联的权重,只加载配置。查看 from_pretrained()方法以加载模型权重。
在顶部具有投影层的 CLAP 音频模型(在池化输出的顶部有一个线性层)。
此模型继承自 PreTrainedModel。查看超类文档以了解库为所有模型实现的通用方法(如下载或保存、调整输入嵌入、修剪头等)。
这个模型也是一个 PyTorch torch.nn.Module子类。将其用作常规的 PyTorch 模块,并参考 PyTorch 文档以获取有关一般用法和行为的所有相关信息。
前进
( input_features: Optional = None is_longer: Optional = None output_attentions: Optional = None output_hidden_states: Optional = None return_dict: Optional = None ) → export const metadata = 'undefined';transformers.models.clap.modeling_clap.ClapAudioModelOutput or tuple(torch.FloatTensor)
参数
input_features(形状为(batch_size, num_channels, height, width)的torch.FloatTensor)—输入音频特征。这应该由您可以从 AutoFeatureExtractor 中检索的 ClapFeatureExtractor 类返回。有关详细信息,请参阅ClapFeatureExtractor.__call__()。is_longer(形状为(batch_size, 1)的torch.FloatTensor,可选)—音频剪辑是否比max_length更长。如果为True,将启用特征融合以增强特征。output_attentions(bool,可选)— 是否返回所有注意力层的注意力张量。有关更多详细信息,请参阅返回张量下的attentions。output_hidden_states(bool,可选)— 是否返回所有层的隐藏状态。有关更多详细信息,请参阅返回张量下的hidden_states。return_dict(bool,可选)— 是否返回一个 ModelOutput 而不是一个普通元组。
返回
transformers.models.clap.modeling_clap.ClapAudioModelOutput或tuple(torch.FloatTensor)
一个transformers.models.clap.modeling_clap.ClapAudioModelOutput或一个torch.FloatTensor元组(如果传递了return_dict=False或config.return_dict=False时)包括根据配置()和输入的不同元素。
audio_embeds(形状为(batch_size, hidden_size)的torch.FloatTensor)—通过将投影层应用于 pooler_output 获得的音频嵌入。last_hidden_state(形状为(batch_size, sequence_length, hidden_size)的torch.FloatTensor)—模型最后一层的隐藏状态序列。attentions(tuple(torch.FloatTensor),可选,当传递output_attentions=True或config.output_attentions=True时返回)—形状为(batch_size, num_heads, sequence_length, sequence_length)的torch.FloatTensor元组(每层一个)。
在注意力 softmax 之后的注意力权重,用于计算自注意力头中的加权平均值。hidden_states(tuple(torch.FloatTensor),可选,当传递output_hidden_states=True或config.output_hidden_states=True时返回)—形状为(batch_size, sequence_length, hidden_size)的torch.FloatTensor元组(如果模型有嵌入层,则为嵌入的输出+每层的输出)。
模型在每一层输出的隐藏状态以及可选的初始嵌入输出。
ClapAudioModelWithProjection 的前向方法,覆盖了__call__特殊方法。
虽然前向传递的步骤需要在此函数内定义,但应该在此之后调用Module实例,而不是在此处调用,因为前者负责运行预处理和后处理步骤,而后者会默默地忽略它们。
示例:
>>> from datasets import load_dataset >>> from transformers import ClapAudioModelWithProjection, ClapProcessor >>> model = ClapAudioModelWithProjection.from_pretrained("laion/clap-htsat-fused") >>> processor = ClapProcessor.from_pretrained("laion/clap-htsat-fused") >>> dataset = load_dataset("ashraq/esc50") >>> audio_sample = dataset["train"]["audio"][0]["array"] >>> inputs = processor(audios=audio_sample, return_tensors="pt") >>> outputs = model(**inputs) >>> audio_embeds = outputs.audio_embeds
EnCodec
原文链接:
huggingface.co/docs/transformers/v4.37.2/en/model_doc/encodec
概述
EnCodec 神经编解码器模型由 Alexandre Défossez、Jade Copet、Gabriel Synnaeve 和 Yossi Adi 在High Fidelity Neural Audio Compression中提出。
论文摘要如下:
我们引入了一种基于神经网络的最先进的实时、高保真音频编解码器。它由一个流式编码器-解码器架构组成,具有量化的潜在空间,以端到端的方式进行训练。我们通过使用一个多尺度频谱对抗器简化和加速训练,有效减少了伪影并产生高质量样本。我们引入了一种新颖的损失平衡机制来稳定训练:损失的权重现在定义了它应该代表整体梯度的比例,从而将这个超参数的选择与典型损失的规模分离。最后,我们研究了轻量级 Transformer 模型如何进一步压缩获得的表示,最多可减少 40%,同时保持快于实时。我们提供了对所提出模型的关键设计选择的详细描述,包括:训练目标、架构变化以及各种感知损失函数的研究。我们进行了广泛的主观评估(MUSHRA 测试),并对一系列带宽和音频领域进行了消融研究,包括语音、嘈杂混响语音和音乐。我们的方法在所有评估设置中优于基线方法,考虑到 24 kHz 单声道和 48 kHz 立体声音频。
该模型由Matthijs、Patrick Von Platen和Arthur Zucker贡献。原始代码可在此处找到。
用法示例
以下是使用该模型对音频进行编码和解码的快速示例:
>>> from datasets import load_dataset, Audio >>> from transformers import EncodecModel, AutoProcessor >>> librispeech_dummy = load_dataset("hf-internal-testing/librispeech_asr_dummy", "clean", split="validation") >>> model = EncodecModel.from_pretrained("facebook/encodec_24khz") >>> processor = AutoProcessor.from_pretrained("facebook/encodec_24khz") >>> librispeech_dummy = librispeech_dummy.cast_column("audio", Audio(sampling_rate=processor.sampling_rate)) >>> audio_sample = librispeech_dummy[-1]["audio"]["array"] >>> inputs = processor(raw_audio=audio_sample, sampling_rate=processor.sampling_rate, return_tensors="pt") >>> encoder_outputs = model.encode(inputs["input_values"], inputs["padding_mask"]) >>> audio_values = model.decode(encoder_outputs.audio_codes, encoder_outputs.audio_scales, inputs["padding_mask"])[0] >>> # or the equivalent with a forward pass >>> audio_values = model(inputs["input_values"], inputs["padding_mask"]).audio_values
EncodecConfig
class transformers.EncodecConfig
( target_bandwidths = [1.5, 3.0, 6.0, 12.0, 24.0] sampling_rate = 24000 audio_channels = 1 normalize = False chunk_length_s = None overlap = None hidden_size = 128 num_filters = 32 num_residual_layers = 1 upsampling_ratios = [8, 5, 4, 2] norm_type = 'weight_norm' kernel_size = 7 last_kernel_size = 7 residual_kernel_size = 3 dilation_growth_rate = 2 use_causal_conv = True pad_mode = 'reflect' compress = 2 num_lstm_layers = 2 trim_right_ratio = 1.0 codebook_size = 1024 codebook_dim = None use_conv_shortcut = True **kwargs )
参数
target_bandwidths(List[float], optional, defaults to[1.5, 3.0, 6.0, 12.0, 24.0]) — 模型可以对音频进行编码的不同带宽范围。sampling_rate(int, optional, defaults to 24000) — 音频波形应数字化的采样率,以赫兹(Hz)表示。audio_channels(int, optional, defaults to 1) — 音频数据中的通道数。单声道为 1,立体声为 2。normalize(bool, optional, defaults toFalse) — 传递音频时是否应该进行归一化。chunk_length_s(float, optional) — 如果定义了,音频将被预处理成长度为chunk_length_s的块,然后进行编码。overlap(float, optional) — 定义每个块之间的重叠。用于计算chunk_stride的公式为:int((1.0 - self.overlap) * self.chunk_length)。hidden_size(int, optional, defaults to 128) — 中间表示维度。num_filters(int, optional, defaults to 32) — 第一个EncodecConv1d下采样层的卷积核数量。num_residual_layers(int, optional, defaults to 1) — 残差层的数量。upsampling_ratios(Sequence[int], optional, defaults to[8, 5, 4, 2]) — 核大小和步幅比例。编码器使用下采样比率而不是上采样比率,因此将使用与此处指定的相反顺序的比率,这些比率必须与解码器顺序匹配。norm_type(str, optional, defaults to"weight_norm") — 归一化方法。应为["weight_norm", "time_group_norm"]之一。kernel_size(int, optional, defaults to 7) — 初始卷积的核大小。last_kernel_size(int, 可选, 默认为 7) — 最后一个卷积层的核大小。residual_kernel_size(int, 可选, 默认为 3) — 残差层的核大小。dilation_growth_rate(int, 可选, 默认为 2) — 每层增加膨胀的量。use_causal_conv(bool, 可选, 默认为True) — 是否使用完全因果卷积。pad_mode(str, 可选, 默认为"reflect") — 卷积的填充模式。compress(int, 可选, 默认为 2) — 在残差分支中的降维度(来自 Demucs v3)。num_lstm_layers(int, 可选, 默认为 2) — 编码器末端的 LSTM 层数。trim_right_ratio(float, 可选, 默认为 1.0) — 在use_causal_conv = True设置下对转置卷积右侧进行修剪的比例。如果等于 1.0,则表示所有修剪都在右侧完成。codebook_size(int, 可选, 默认为 1024) — 组成 VQVAE 的离散代码的数量。codebook_dim(int, 可选) — 代码书向量的维度。如果未定义,则使用hidden_size。use_conv_shortcut(bool, 可选, 默认为True) — 是否在EncodecResnetBlock块中使用卷积层作为“跳过”连接。如果为 False,将使用一个恒等函数,提供一个通用的残差连接。
这是用于存储 EncodecModel 配置的配置类。它用于根据指定的参数实例化一个 Encodec 模型,定义模型架构。使用默认值实例化配置将产生类似于facebook/encodec_24khz架构的配置。
配置对象继承自 PretrainedConfig,可用于控制模型输出。阅读 PretrainedConfig 的文档以获取更多信息。
示例:
>>> from transformers import EncodecModel, EncodecConfig >>> # Initializing a "facebook/encodec_24khz" style configuration >>> configuration = EncodecConfig() >>> # Initializing a model (with random weights) from the "facebook/encodec_24khz" style configuration >>> model = EncodecModel(configuration) >>> # Accessing the model configuration >>> configuration = model.config
Transformers 4.37 中文文档(七十五)(3)https://developer.aliyun.com/article/1564209