Transformers 4.37 中文文档(八十五)(5)

简介: Transformers 4.37 中文文档(八十五)

Transformers 4.37 中文文档(八十五)(4)https://developer.aliyun.com/article/1563263


Data2VecAudioModel

class transformers.Data2VecAudioModel

< source >

( config: Data2VecAudioConfig )

参数

  • config(Data2VecAudioConfig)- 具有模型所有参数的模型配置类。使用配置文件初始化不会加载与模型关联的权重,只会加载配置。查看 from_pretrained()方法以加载模型权重。

裸 Data2VecAudio 模型变压器输出原始隐藏状态,没有特定的头部。Data2VecAudio 是由 Alexei  Baevski、Wei-Ning Hsu、Qiantong Xu、Arun Babu、Jiatao Gu 和 Michael Auli 在数据 2vec:语音、视觉和语言自监督学习的通用框架中提出的。

这个模型继承自 PreTrainedModel。查看超类文档以获取库为所有模型实现的通用方法(例如下载或保存等)。

这个模型是 PyTorch torch.nn.Module的子类。将其用作常规的 PyTorch 模块,并参考 PyTorch 文档以获取与一般用法和行为相关的所有事项。

forward

< source >

( input_values: Optional attention_mask: Optional = None mask_time_indices: Optional = None output_attentions: Optional = None output_hidden_states: Optional = None return_dict: Optional = None ) → export const metadata = 'undefined';transformers.modeling_outputs.Wav2Vec2BaseModelOutput or tuple(torch.FloatTensor)

参数

  • input_values(形状为(batch_size, sequence_length)torch.FloatTensor)- 输入原始语音波形的浮点值。可以通过将*.flac.wav音频文件加载到List[float]numpy.ndarray类型的数组中获得值,例如通过 soundfile 库(pip install soundfile)。要将数组准备成input_values*,应使用 AutoProcessor 进行填充和转换为类型为torch.FloatTensor的张量。有关详细信息,请参见 Wav2Vec2Processor.call()。
  • attention_mask(形状为(batch_size, sequence_length)torch.LongTensor可选)- 用于避免在填充令牌索引上执行卷积和注意力的掩码。掩码值选在[0, 1]范围内:
  • 1 表示未被掩码的令牌,
  • 0 表示被掩码的令牌。
  • 什么是注意力掩码?
    如果相应的处理器具有config.return_attention_mask == True,则应传递attention_mask,这适用于所有预训练的 Data2Vec 音频模型。请注意,即使使用attention_mask,零填充的输入与非填充的输入将具有略有不同的输出,因为在位置编码中有多个卷积层。有关更详细的解释,请参见这里
  • output_attentionsbool可选)- 是否返回所有注意力层的注意力张量。有关更多详细信息,请参见返回的张量下的attentions
  • output_hidden_states (bool, 可选) — 是否返回所有层的隐藏状态。有关更多详细信息,请查看返回张量下的hidden_states
  • return_dict (bool, 可选) — 是否返回 ModelOutput 而不是普通元组。

返回

transformers.modeling_outputs.Wav2Vec2BaseModelOutput 或tuple(torch.FloatTensor)

一个 transformers.modeling_outputs.Wav2Vec2BaseModelOutput 或一个torch.FloatTensor元组(如果传递return_dict=Falseconfig.return_dict=False)包含根据配置(Data2VecAudioConfig)和输入的不同元素。

  • last_hidden_state (torch.FloatTensor of shape (batch_size, sequence_length, hidden_size)) — 模型最后一层的隐藏状态序列。
  • extract_features (torch.FloatTensor of shape (batch_size, sequence_length, conv_dim[-1])) — 模型最后一个卷积层提取的特征向量序列。
  • hidden_states (tuple(torch.FloatTensor), 可选, 当传递output_hidden_states=Trueconfig.output_hidden_states=True时返回) — torch.FloatTensor元组(一个用于嵌入输出,一个用于每一层输出)的形状为(batch_size, sequence_length, hidden_size)
    模型在每一层输出的隐藏状态以及初始嵌入输出。
  • attentions (tuple(torch.FloatTensor), 可选, 当传递output_attentions=Trueconfig.output_attentions=True时返回) — torch.FloatTensor元组(每一层一个)的形状为(batch_size, num_heads, sequence_length, sequence_length)
    在注意力 softmax 之后的注意力权重,用于计算自注意力头中的加权平均值。

Data2VecAudioModel 的前向方法覆盖了__call__特殊方法。

虽然前向传递的步骤需要在此函数内定义,但应该在此之后调用Module实例,而不是在此处调用,因为前者会处理运行前后处理步骤,而后者会默默地忽略它们。

示例:

>>> from transformers import AutoProcessor, Data2VecAudioModel
>>> import torch
>>> from datasets import load_dataset
>>> dataset = load_dataset("hf-internal-testing/librispeech_asr_demo", "clean", split="validation")
>>> dataset = dataset.sort("id")
>>> sampling_rate = dataset.features["audio"].sampling_rate
>>> processor = AutoProcessor.from_pretrained("facebook/data2vec-audio-base-960h")
>>> model = Data2VecAudioModel.from_pretrained("facebook/data2vec-audio-base-960h")
>>> # audio file is decoded on the fly
>>> inputs = processor(dataset[0]["audio"]["array"], sampling_rate=sampling_rate, return_tensors="pt")
>>> with torch.no_grad():
...     outputs = model(**inputs)
>>> last_hidden_states = outputs.last_hidden_state
>>> list(last_hidden_states.shape)
[1, 292, 768]

Data2VecAudioForAudioFrameClassification

class transformers.Data2VecAudioForAudioFrameClassification

< source >

( config )

参数

  • config (Data2VecAudioConfig) — 具有模型所有参数的模型配置类。使用配置文件初始化不会加载与模型相关的权重,只会加载配置。查看 from_pretrained()方法以加载模型权重。

Data2VecAudio 模型,顶部带有用于说话人分离等任务的帧分类头。

Data2VecAudio 是由 Alexei Baevski、Wei-Ning Hsu、Qiantong Xu、Arun Babu、Jiatao Gu 和 Michael Auli 在数据 2vec: 语音、视觉和语言自监督学习的通用框架中提出的。

该模型继承自 PreTrainedModel。查看超类文档以了解库为所有模型实现的通用方法(如下载或保存等)。

此模型是 PyTorch torch.nn.Module 的子类。将其用作常规的 PyTorch 模块,并参考 PyTorch 文档以获取与一般用法和行为相关的所有事项。

forward

< source >

( input_values: Optional attention_mask: Optional = None labels: Optional = None output_attentions: Optional = None output_hidden_states: Optional = None return_dict: Optional = None ) → export const metadata = 'undefined';transformers.modeling_outputs.TokenClassifierOutput or tuple(torch.FloatTensor)

参数

  • input_values (torch.FloatTensor of shape (batch_size, sequence_length)) — 输入原始语音波形的浮点值。可以通过将 .flac.wav 音频文件加载到 List[float] 类型的数组或 numpy.ndarray 中获得这些值,例如通过 soundfile 库 (pip install soundfile)。要将数组准备成 input_values,应该使用 AutoProcessor 进行填充和转换为 torch.FloatTensor 类型的张量。详细信息请参见 Wav2Vec2Processor.call()。
  • attention_mask (torch.LongTensor of shape (batch_size, sequence_length), optional) — 用于避免在填充标记索引上执行卷积和注意力的掩码。掩码值选在 [0, 1] 范围内。
  • 对于未被 masked 的标记为 1,
  • 对于被 masked 的标记为 0。
  • 什么是注意力掩码?
    如果相应的处理器具有 config.return_attention_mask == True,则应传递 attention_mask,这适用于所有预训练的 Data2Vec 音频模型。请注意,即使使用了 attention_mask,零填充的输入与非填充的输入会有稍微不同的输出,因为在位置编码中有多个卷积层。有关更详细的解释,请参见这里
  • output_attentions (bool, optional) — 是否返回所有注意力层的注意力张量。有关更多详细信息,请参见返回张量下的 attentions
  • output_hidden_states (bool, optional) — 是否返回所有层的隐藏状态。有关更多详细信息,请参见返回张量下的 hidden_states
  • return_dict (bool, optional) — 是否返回 ModelOutput 而不是普通元组。
  • labels (torch.LongTensor of shape (batch_size,), optional) — 用于计算序列分类/回归损失的标签。索引应在 [0, ..., config.num_labels - 1] 范围内。如果 config.num_labels == 1,则计算回归损失 (均方损失),如果 config.num_labels > 1,则计算分类损失 (交叉熵)。

返回

transformers.modeling_outputs.TokenClassifierOutput 或 tuple(torch.FloatTensor)

一个 transformers.modeling_outputs.TokenClassifierOutput 或一个 torch.FloatTensor 元组 (如果传递了 return_dict=False 或当 config.return_dict=False 时) 包含各种元素,这取决于配置 (Data2VecAudioConfig) 和输入。

  • loss (torch.FloatTensor of shape (1,), optional, 当提供 labels 时返回) — 分类损失。
  • logits (torch.FloatTensor of shape (batch_size, sequence_length, config.num_labels)) — 分类分数 (SoftMax 之前)。
  • 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 之后的注意力权重,用于计算自注意力头中的加权平均值。

Data2VecAudioForAudioFrameClassification 的前向方法,覆盖了 __call__ 特殊方法。

虽然前向传递的步骤需要在此函数内定义,但应该在此之后调用 Module 实例,而不是在此处调用,因为前者会负责运行预处理和后处理步骤,而后者会默默地忽略它们。

示例:

>>> from transformers import AutoFeatureExtractor, Data2VecAudioForAudioFrameClassification
>>> from datasets import load_dataset
>>> import torch
>>> dataset = load_dataset("hf-internal-testing/librispeech_asr_demo", "clean", split="validation")
>>> dataset = dataset.sort("id")
>>> sampling_rate = dataset.features["audio"].sampling_rate
>>> feature_extractor = AutoFeatureExtractor.from_pretrained("facebook/data2vec-audio-base-960h")
>>> model = Data2VecAudioForAudioFrameClassification.from_pretrained("facebook/data2vec-audio-base-960h")
>>> # audio file is decoded on the fly
>>> inputs = feature_extractor(dataset[0]["audio"]["array"], return_tensors="pt", sampling_rate=sampling_rate)
>>> with torch.no_grad():
...     logits = model(**inputs).logits
>>> probabilities = torch.sigmoid(logits[0])
>>> # labels is a one-hot array of shape (num_frames, num_speakers)
>>> labels = (probabilities > 0.5).long()

Data2VecAudioForCTC

class transformers.Data2VecAudioForCTC

< source >

( config )

参数

  • config (Data2VecAudioConfig) — 包含模型所有参数的模型配置类。使用配置文件初始化不会加载与模型相关的权重,只会加载配置。查看 from_pretrained() 方法以加载模型权重。

Data2VecAudio 模型在顶部带有 语言建模 头部,用于 Connectionist Temporal  Classification (CTC)。Data2VecAudio 是由 Alexei Baevski、Wei-Ning  Hsu、Qiantong Xu、Arun Babu、Jiatao Gu 和 Michael Auli 在 data2vec: A General Framework for Self-supervised Learning in Speech, Vision and Language 中提出的。

这个模型继承自 PreTrainedModel。检查超类文档以获取库为所有模型实现的通用方法(如下载或保存等)。

这个模型是 PyTorch torch.nn.Module 的子类。将其用作常规的 PyTorch 模块,并参考 PyTorch 文档以获取有关一般用法和行为的所有相关信息。

forward

< source >

( input_values: Optional attention_mask: Optional = None output_attentions: Optional = None output_hidden_states: Optional = None return_dict: Optional = None labels: Optional = None ) → export const metadata = 'undefined';transformers.modeling_outputs.CausalLMOutput or tuple(torch.FloatTensor)

参数

  • input_values (torch.FloatTensor of shape (batch_size, sequence_length)) — 输入原始语音波形的浮点值。值可以通过将 .flac.wav 音频文件加载到 List[float]numpy.ndarray 类型的数组中获得,例如通过 soundfile 库 (pip install soundfile)。要将数组准备成 input_values,应使用 AutoProcessor 进行填充和转换为 torch.FloatTensor 类型的张量。有关详细信息,请参阅 Wav2Vec2Processor.call()。
  • attention_mask (torch.LongTensor of shape (batch_size, sequence_length), optional) — 用于避免在填充标记索引上执行卷积和注意力的掩码。掩码值选择在 [0, 1] 之间:
  • 1 用于 未被掩码 的标记,
  • 0 用于 被掩码 的标记。
  • 什么是注意力掩码?
    如果相应的处理器具有config.return_attention_mask == True,则应传递attention_mask,这对于所有预训练的 Data2Vec Audio 模型都是如此。请注意,即使使用attention_mask,零填充的输入与非填充的输入将具有稍有不同的输出,因为在位置编码中有多个卷积层。有关更详细的解释,请参见这里
  • output_attentions (booloptional) — 是否返回所有注意力层的注意力张量。有关更多详细信息,请参阅返回张量下的attentions
  • output_hidden_states (bool, optional) — 是否返回所有层的隐藏状态。有关更多详细信息,请参阅返回张量下的hidden_states
  • return_dict (booloptional) — 是否返回 ModelOutput 而不是普通元组。
  • labels (torch.LongTensor,形状为(batch_size, target_length)optional) — 连接主义时间分类的标签。请注意,target_length必须小于或等于输出 logits 的序列长度。索引在[-100, 0, ..., config.vocab_size - 1]中选择。所有设置为-100的标签都被忽略(掩码),损失仅计算在[0, ..., config.vocab_size - 1]中的标签。

返回

transformers.modeling_outputs.CausalLMOutput 或tuple(torch.FloatTensor)

一个 transformers.modeling_outputs.CausalLMOutput 或一个torch.FloatTensor元组(如果传递return_dict=Falseconfig.return_dict=False)包含根据配置(Data2VecAudioConfig)和输入而异的各种元素。

  • loss (torch.FloatTensor,形状为(1,)optional,当提供labels时返回) — 语言建模损失(用于下一个标记预测)。
  • logits (torch.FloatTensor,形状为(batch_size, sequence_length, config.vocab_size)) — 语言建模头的预测分数(SoftMax 之前每个词汇标记的分数)。
  • hidden_states (tuple(torch.FloatTensor)optional,当传递output_hidden_states=Trueconfig.output_hidden_states=True时返回) — 形状为(batch_size, sequence_length, hidden_size)torch.FloatTensor元组(如果模型有嵌入层,则为嵌入输出的一个+每层输出的一个)。
    模型在每一层输出的隐藏状态以及可选的初始嵌入输出。
  • attentions (tuple(torch.FloatTensor)optional,当传递output_attentions=Trueconfig.output_attentions=True时返回) — 形状为(batch_size, num_heads, sequence_length, sequence_length)torch.FloatTensor元组(每层一个)。
    注意力 softmax 后的注意力权重,用于计算自注意力头中的加权平均值。

Data2VecAudioForCTC 的前向方法,覆盖了__call__特殊方法。

虽然前向传递的步骤需要在这个函数内定义,但应该在此之后调用Module实例,而不是这个,因为前者会处理运行前后处理步骤,而后者会默默地忽略它们。

示例:

>>> from transformers import AutoProcessor, Data2VecAudioForCTC
>>> from datasets import load_dataset
>>> import torch
>>> dataset = load_dataset("hf-internal-testing/librispeech_asr_demo", "clean", split="validation")
>>> dataset = dataset.sort("id")
>>> sampling_rate = dataset.features["audio"].sampling_rate
>>> processor = AutoProcessor.from_pretrained("facebook/data2vec-audio-base-960h")
>>> model = Data2VecAudioForCTC.from_pretrained("facebook/data2vec-audio-base-960h")
>>> # audio file is decoded on the fly
>>> inputs = processor(dataset[0]["audio"]["array"], sampling_rate=sampling_rate, return_tensors="pt")
>>> with torch.no_grad():
...     logits = model(**inputs).logits
>>> predicted_ids = torch.argmax(logits, dim=-1)
>>> # transcribe speech
>>> transcription = processor.batch_decode(predicted_ids)
>>> transcription[0]
'MISTER QUILTER IS THE APOSTLE OF THE MIDDLE CLASSES AND WE ARE GLAD TO WELCOME HIS GOSPEL'
>>> inputs["labels"] = processor(text=dataset[0]["text"], return_tensors="pt").input_ids
>>> # compute loss
>>> loss = model(**inputs).loss
>>> round(loss.item(), 2)
66.95

Data2VecAudioForSequenceClassification

class transformers.Data2VecAudioForSequenceClassification

< source >

( config )

参数

  • config(Data2VecAudioConfig)-模型配置类,包含模型的所有参数。使用配置文件初始化不会加载与模型相关的权重,只加载配置。查看 from_pretrained()方法以加载模型权重。

Data2VecAudio 模型在顶部具有一个序列分类头(一个线性层在池化输出之上)用于类似 SUPERB 关键词检测的任务。

Data2VecAudio 是由 Alexei Baevski、Wei-Ning Hsu、Qiantong Xu、Arun Babu、Jiatao Gu 和 Michael Auli 在数据 2vec: 语音、视觉和语言自监督学习的通用框架中提出的。

这个模型继承自 PreTrainedModel。查看超类文档以获取库实现的所有模型的通用方法(如下载或保存等)。

这个模型是 PyTorch 的torch.nn.Module子类。将其用作常规的 PyTorch 模块,并参考 PyTorch 文档以获取与一般用法和行为相关的所有信息。

forward

<来源>

( input_values: Optional attention_mask: Optional = None output_attentions: Optional = None output_hidden_states: Optional = None return_dict: Optional = None labels: Optional = None ) → export const metadata = 'undefined';transformers.modeling_outputs.SequenceClassifierOutput or tuple(torch.FloatTensor)

参数

orCTC

from datasets import load_dataset

import torch

dataset = load_dataset(“hf-internal-testing/librispeech_asr_demo”, “clean”, split=“validation”)

dataset = dataset.sort(“id”)

sampling_rate = dataset.features[“audio”].sampling_rate

processor = AutoProcessor.from_pretrained(“facebook/data2vec-audio-base-960h”)

model = Data2VecAudioForCTC.from_pretrained(“facebook/data2vec-audio-base-960h”)

audio file is decoded on the fly

inputs = processor(dataset[0][“audio”][“array”], sampling_rate=sampling_rate, return_tensors=“pt”)

with torch.no_grad():

… logits = model(**inputs).logits

predicted_ids = torch.argmax(logits, dim=-1)

transcribe speech

transcription = processor.batch_decode(predicted_ids)

transcription[0]

‘MISTER QUILTER IS THE APOSTLE OF THE MIDDLE CLASSES AND WE ARE GLAD TO WELCOME HIS GOSPEL’

inputs[“labels”] = processor(text=dataset[0][“text”], return_tensors=“pt”).input_ids

compute loss

loss = model(**inputs).loss

round(loss.item(), 2)

66.95

## Data2VecAudioForSequenceClassification
### `class transformers.Data2VecAudioForSequenceClassification`
[< source >](https://github.com/huggingface/transformers/blob/v4.37.2/src/transformers/models/data2vec/modeling_data2vec_audio.py#L1074)
```py
( config )

参数

  • config(Data2VecAudioConfig)-模型配置类,包含模型的所有参数。使用配置文件初始化不会加载与模型相关的权重,只加载配置。查看 from_pretrained()方法以加载模型权重。

Data2VecAudio 模型在顶部具有一个序列分类头(一个线性层在池化输出之上)用于类似 SUPERB 关键词检测的任务。

Data2VecAudio 是由 Alexei Baevski、Wei-Ning Hsu、Qiantong Xu、Arun Babu、Jiatao Gu 和 Michael Auli 在数据 2vec: 语音、视觉和语言自监督学习的通用框架中提出的。

这个模型继承自 PreTrainedModel。查看超类文档以获取库实现的所有模型的通用方法(如下载或保存等)。

这个模型是 PyTorch 的torch.nn.Module子类。将其用作常规的 PyTorch 模块,并参考 PyTorch 文档以获取与一般用法和行为相关的所有信息。

forward

<来源>

( input_values: Optional attention_mask: Optional = None output_attentions: Optional = None output_hidden_states: Optional = None return_dict: Optional = None labels: Optional = None ) → export const metadata = 'undefined';transformers.modeling_outputs.SequenceClassifierOutput or tuple(torch.FloatTensor)

参数

相关文章
|
2月前
|
存储 编解码 自然语言处理
Transformers 4.37 中文文档(八十五)(4)
Transformers 4.37 中文文档(八十五)
27 9
|
2月前
|
自然语言处理 PyTorch 算法框架/工具
Transformers 4.37 中文文档(八十五)(3)
Transformers 4.37 中文文档(八十五)
23 5
|
2月前
|
存储 PyTorch 算法框架/工具
Transformers 4.37 中文文档(八十五)(1)
Transformers 4.37 中文文档(八十五)
24 4
|
2月前
|
自然语言处理 PyTorch 算法框架/工具
Transformers 4.37 中文文档(八十三)(5)
Transformers 4.37 中文文档(八十三)
20 4
|
2月前
|
PyTorch 语音技术 算法框架/工具
Transformers 4.37 中文文档(八十五)(2)
Transformers 4.37 中文文档(八十五)
27 3
|
2月前
|
存储 自然语言处理 PyTorch
Transformers 4.37 中文文档(八十三)(1)
Transformers 4.37 中文文档(八十三)
26 3
|
2月前
|
存储 PyTorch 算法框架/工具
Transformers 4.37 中文文档(八十三)(2)
Transformers 4.37 中文文档(八十三)
18 3
|
2月前
|
存储 PyTorch 算法框架/工具
Transformers 4.37 中文文档(八十七)(5)
Transformers 4.37 中文文档(八十七)
19 3
|
2月前
|
存储 编解码 PyTorch
Transformers 4.37 中文文档(八十三)(3)
Transformers 4.37 中文文档(八十三)
22 2
|
2月前
|
存储 PyTorch 测试技术
Transformers 4.37 中文文档(八十三)(4)
Transformers 4.37 中文文档(八十三)
19 2