图像处理器的实用工具
原文:
huggingface.co/docs/transformers/v4.37.2/en/internal/image_processing_utils
此页面列出了图像处理器使用的所有实用函数,主要是用于处理图像的功能转换。
大多数情况下,这些只有在您研究库中图像处理器的代码时才有用。
图像转换
transformers.image_transforms.center_crop
( image: ndarray size: Tuple data_format: Union = None input_data_format: Union = None return_numpy: Optional = None ) → export const metadata = 'undefined';np.ndarray
参数
-
image
(np.ndarray
)—要裁剪的图像。 -
size
(Tuple[int, int]
)—裁剪图像的目标尺寸。 -
data_format
(str
或ChannelDimension
,可选)—输出图像的通道维度格式。可以是以下之一:-
"channels_first"
或ChannelDimension.FIRST
:图像以(num_channels,height,width)格式。 -
"channels_last"
或ChannelDimension.LAST
:图像以(height,width,num_channels)格式。如果未设置,将使用输入图像的推断格式。
-
-
input_data_format
(str
或ChannelDimension
,可选)—输入图像的通道维度格式。可以是以下之一:-
"channels_first"
或ChannelDimension.FIRST
:图像以(num_channels,height,width)格式。 -
"channels_last"
或ChannelDimension.LAST
:图像以(height,width,num_channels)格式。如果未设置,将使用输入图像的推断格式。
-
-
return_numpy
(bool
,可选)—是否将裁剪后的图像作为 numpy 数组返回。用于与先前的 ImageFeatureExtractionMixin 方法向后兼容。-
未设置:将返回与输入图像相同类型。
-
True
:将返回一个 numpy 数组。 -
False
:将返回一个PIL.Image.Image
对象。
-
返回
np.ndarray
裁剪后的图像。
使用中心裁剪将image
裁剪到指定的size
。请注意,如果图像太小而无法裁剪到给定的尺寸,将进行填充(因此返回的结果始终为size
的大小)。
transformers.image_transforms.center_to_corners_format
( bboxes_center: TensorType )
将边界框从中心格式转换为角落格式。
中心格式:包含框的中心坐标及其宽度、高度尺寸(center_x,center_y,width,height)角落格式:包含框的左上角和右下角的坐标(top_left_x,top_left_y,bottom_right_x,bottom_right_y)
transformers.image_transforms.corners_to_center_format
( bboxes_corners: TensorType )
将边界框从角落格式转换为中心格式。
角落格式:包含框的左上角和右下角的坐标(top_left_x,top_left_y,bottom_right_x,bottom_right_y)中心格式:包含框的中心坐标及其宽度、高度尺寸(center_x,center_y,width,height)
transformers.image_transforms.id_to_rgb
( id_map )
将唯一 ID 转换为 RGB 颜色。
transformers.image_transforms.normalize
( image: ndarray mean: Union std: Union data_format: Optional = None input_data_format: Union = None )
参数
-
image
(np.ndarray
)—要归一化的图像。 -
mean
(float
或Iterable[float]
)—用于归一化的均值。 -
std
(float
或Iterable[float]
)—用于归一化的标准差。 -
data_format
(ChannelDimension
,可选)—输出图像的通道维度格式。如果未设置,将使用从输入推断的格式。 -
input_data_format
(ChannelDimension
,可选)— 输入图像的通道维度格式。如果未设置,将使用从输入中推断的格式。
使用由mean
和std
指定的均值和标准差对image
进行归一化。
图像=(图像-平均值)/标准差
transformers.image_transforms.pad
( image: ndarray padding: Union mode: PaddingMode = <PaddingMode.CONSTANT: 'constant'> constant_values: Union = 0.0 data_format: Union = None input_data_format: Union = None ) → export const metadata = 'undefined';np.ndarray
参数
-
image
(np.ndarray
)— 要填充的图像。 -
padding
(int
或Tuple[int, int]
或Iterable[Tuple[int, int]]
)— 要应用到高度、宽度轴边缘的填充。可以是以下三种格式之一:-
((before_height,after_height),(before_width,after_width))
每个轴的唯一填充宽度。 -
((before,after),)
产生相同的高度和宽度的前后填充。 -
(填充,)
或 int 是所有轴的宽度的快捷方式为 before = after = pad。
-
-
mode
(PaddingMode
)— 要使用的填充模式。可以是以下之一:-
“常数”
:用常数值填充。 -
“反射”
:用沿每个轴的向量的第一个和最后一个值的镜像填充。 -
“复制”
:用沿每个轴的数组边缘的最后一个值的复制填充。 -
“对称”
:用沿数组边缘镜像的向量的反射填充。
-
-
constant_values
(float
或Iterable[float]
,可选)— 如果mode
为"constant"
,则用于填充的值。 -
data_format
(str
或ChannelDimension
,可选)— 输出图像的通道维度格式。可以是以下之一:-
"channels_first"
或ChannelDimension.FIRST
:图像以(通道数,高度,宽度)格式。 -
"channels_last"
或ChannelDimension.LAST
:图像以(高度,宽度,通道数)格式。如果未设置,将使用与输入图像相同的格式。
-
-
input_data_format
(str
或ChannelDimension
,可选)— 输入图像的通道维度格式。可以是以下之一:-
"channels_first"
或ChannelDimension.FIRST
:图像以(通道数,高度,宽度)格式。 -
"channels_last"
或ChannelDimension.LAST
:图像以(高度,宽度,通道数)格式。如果未设置,将使用从输入图像推断的格式。
-
返回
np.ndarray
填充后的图像。
用指定的(高度,宽度)填充
和模式
填充图像
。
transformers.image_transforms.rgb_to_id
( color )
将 RGB 颜色转换为唯一 ID。
transformers.image_transforms.rescale
( image: ndarray scale: float data_format: Optional = None dtype: dtype = <class 'numpy.float32'> input_data_format: Union = None ) → export const metadata = 'undefined';np.ndarray
参数
-
image
(np.ndarray
)— 要重新缩放的图像。 -
scale
(float
)— 用于重新缩放图像的比例。 -
data_format
(ChannelDimension
,可选)— 图像的通道维度格式。如果未提供,将与输入图像相同。 -
dtype
(np.dtype
,可选,默认为np.float32
)— 输出图像的数据类型。默认为np.float32
。用于与特征提取器的向后兼容性。 -
input_data_format
(ChannelDimension
,可选)— 输入图像的通道维度格式。如果未提供,将从输入图像中推断。
返回
np.ndarray
重新缩放后的图像。
通过scale
重新缩放图像
。
transformers.image_transforms.resize
( image: ndarray size: Tuple resample: PILImageResampling = None reducing_gap: Optional = None data_format: Optional = None return_numpy: bool = True input_data_format: Union = None ) → export const metadata = 'undefined';np.ndarray
参数
-
image
(np.ndarray
)— 要调整大小的图像。 -
size
(Tuple[int, int]
)— 用于调整图像大小的尺寸。 -
resample
(int
,可选,默认为PILImageResampling.BILINEAR
)— 用于重采样的滤波器。 -
reducing_gap
(int
,可选)— 通过在两个步骤中调整图像大小来应用优化。reducing_gap
越大,结果越接近公平重采样。有关更多详细信息,请参阅相应的 Pillow 文档。 -
data_format
(ChannelDimension
, 可选) — 输出图像的通道维度格式。如果未设置,将使用从输入推断出的格式。 -
return_numpy
(bool
, 可选, 默认为True
) — 是否将调整大小后的图像作为 numpy 数组返回。如果为 False,则返回一个PIL.Image.Image
对象。 -
input_data_format
(ChannelDimension
, 可选) — 输入图像的通道维度格式。如果未设置,将使用从输入推断出的格式。
返回
np.ndarray
调整大小后的图像。
使用 PIL 库将image
调整为由size
指定的(height, width)
大小。
transformers.image_transforms.to_pil_image
( image: Union do_rescale: Optional = None input_data_format: Union = None ) → export const metadata = 'undefined';PIL.Image.Image
参数
-
image
(PIL.Image.Image
或numpy.ndarray
或torch.Tensor
或tf.Tensor
) — 要转换为PIL.Image
格式的图像。 -
do_rescale
(bool
, 可选) — 是否应用缩放因子(使像素值在 0 和 255 之间为整数)。如果图像类型是浮点类型,并且转换为int
会导致精度损失,则默认为True
,否则为False
。 -
input_data_format
(ChannelDimension
, 可选) — 输入图像的通道维度格式。如果未设置,将使用从输入推断出的格式。
返回
PIL.Image.Image
转换后的图像。
将image
转换为 PIL 图像。可选地重新缩放它,并在需要时将通道维度放回作为最后一个轴。
ImageProcessingMixin
class transformers.ImageProcessingMixin
( **kwargs )
这是一个用于为顺序和图像特征提取器提供保存/加载功能的图像处理器 mixin。
fetch_images
( image_url_or_urls: Union )
将单个或一组 url 转换为相应的PIL.Image
对象。
如果传递单个 url,则返回值将是单个对象。如果传递列表,则返回对象列表。
from_dict
( image_processor_dict: Dict **kwargs ) → export const metadata = 'undefined';ImageProcessingMixin
参数
-
image_processor_dict
(Dict[str, Any]
) — 将用于实例化图像处理器对象的字典。可以通过利用 to_dict() 方法从预训练检查点中检索这样的字典。 -
kwargs
(Dict[str, Any]
) — 用于初始化图像处理器对象的其他参数。
返回
ImageProcessingMixin
从这些参数实例化的图像处理器对象。
从 Python 参数字典中实例化一种类型的 ImageProcessingMixin。
from_json_file
( json_file: Union ) → export const metadata = 'undefined';A image processor of type ImageProcessingMixin
参数
json_file
(str
或os.PathLike
) — 包含参数的 JSON 文件的路径。
返回
类型为 ImageProcessingMixin 的图像处理器。
从该 JSON 文件实例化的图像处理器对象。
从参数 JSON 文件的路径实例化类型为 ImageProcessingMixin 的图像处理器。
from_pretrained
( pretrained_model_name_or_path: Union cache_dir: Union = None force_download: bool = False local_files_only: bool = False token: Union = None revision: str = 'main' **kwargs )
参数
-
pretrained_model_name_or_path
(str
或os.PathLike
) — 这可以是:-
一个字符串,预训练图像处理器的模型 ID,托管在 huggingface.co 上的模型存储库内。有效的模型 ID 可以位于根级别,如
bert-base-uncased
,或者在用户或组织名称下命名空间化,如dbmdz/bert-base-german-cased
。 -
一个包含使用 save_pretrained()方法保存的图像处理器文件的目录路径,例如,
./my_model_directory/
。 -
保存的图像处理器 JSON 文件的路径或 URL,例如,
./my_model_directory/preprocessor_config.json
。
-
-
cache_dir
(str
或os.PathLike
,可选)— 如果不应使用标准缓存,则应将下载的预训练模型图像处理器缓存在其中的目录路径。 -
force_download
(bool
,可选,默认为False
)— 是否强制(重新)下载图像处理器文件并覆盖缓存版本(如果存在)。 -
resume_download
(bool
,可选,默认为False
)— 是否删除接收不完整的文件。如果存在这样的文件,尝试恢复下载。 -
proxies
(Dict[str, str]
,可选)— 要使用的代理服务器字典,按协议或端点分类,例如,{'http': 'foo.bar:3128', 'http://hostname': 'foo.bar:4012'}
。代理将在每个请求上使用。 -
token
(str
或bool
,可选)— 用作远程文件的 HTTP bearer 授权的令牌。如果为True
,或未指定,将使用运行huggingface-cli login
时生成的令牌(存储在~/.huggingface
)。 -
revision
(str
,可选,默认为"main"
)— 要使用的特定模型版本。它可以是分支名称、标签名称或提交 ID,因为我们在 huggingface.co 上使用基于 git 的系统存储模型和其他工件,所以revision
可以是 git 允许的任何标识符。
从图像处理器实例化类型 ImageProcessingMixin。
示例:
# We can't instantiate directly the base class *ImageProcessingMixin* so let's show the examples on a
# derived class: *CLIPImageProcessor*
image_processor = CLIPImageProcessor.from_pretrained(
"openai/clip-vit-base-patch32"
) # Download image_processing_config from huggingface.co and cache.
image_processor = CLIPImageProcessor.from_pretrained(
"./test/saved_model/"
) # E.g. image processor (or model) was saved using *save_pretrained('./test/saved_model/')*
image_processor = CLIPImageProcessor.from_pretrained("./test/saved_model/preprocessor_config.json")
image_processor = CLIPImageProcessor.from_pretrained(
"openai/clip-vit-base-patch32", do_normalize=False, foo=False
)
assert image_processor.do_normalize is False
image_processor, unused_kwargs = CLIPImageProcessor.from_pretrained(
"openai/clip-vit-base-patch32", do_normalize=False, foo=False, return_unused_kwargs=True
)
assert image_processor.do_normalize is False
assert unused_kwargs == {
"foo": False}
get_image_processor_dict
( pretrained_model_name_or_path: Union **kwargs ) → export const metadata = 'undefined';Tuple[Dict, Dict]
参数
-
pretrained_model_name_or_path
(str
或os.PathLike
)— 我们想要参数字典的预训练检查点的标识符。 -
subfolder
(str
,可选,默认为""
)— 如果相关文件位于 huggingface.co 上模型存储库的子文件夹中,您可以在此处指定文件夹名称。
返回
Tuple[Dict, Dict]
将用于实例化图像处理器对象的字典。
从pretrained_model_name_or_path
解析为参数字典,用于实例化类型为~image_processor_utils.ImageProcessingMixin
的图像处理器,使用from_dict
。
push_to_hub
( repo_id: str use_temp_dir: Optional = None commit_message: Optional = None private: Optional = None token: Union = None max_shard_size: Union = '5GB' create_pr: bool = False safe_serialization: bool = True revision: str = None commit_description: str = None tags: Optional = None **deprecated_kwargs )
参数
-
repo_id
(str
)— 您要推送图像处理器的存储库名称。在推送到给定组织时,应包含您的组织名称。 -
use_temp_dir
(bool
,可选)— 是否使用临时目录来存储在推送到 Hub 之前保存的文件。如果没有名为repo_id
的目录,则默认为True
,否则为False
。 -
commit_message
(str
,可选)— 推送时要提交的消息。默认为"Upload image processor"
。 -
private
(bool
,可选)— 创建的存储库是否应为私有。 -
token
(bool
或str
,可选)— 用作远程文件的 HTTP bearer 授权的令牌。如果repo_url
未指定,将默认为True
。 -
max_shard_size
(int
或str
,可选,默认为"5GB"
)— 仅适用于模型。在分片之前的检查点的最大大小。然后,检查点将分片,每个分片的大小都小于此大小。如果表示为字符串,需要是数字后跟一个单位(如"5MB"
)。我们将其默认设置为"5GB"
,以便用户可以在免费的 Google Colab 实例上轻松加载模型,而不会出现 CPU OOM 问题。 -
create_pr
(bool
,可选,默认为False
)— 是否创建一个带有上传文件的 PR 或直接提交。 -
safe_serialization
(bool
,可选,默认为True
)— 是否将模型权重转换为 safetensors 格式以进行更安全的序列化。 -
revision
(str
,可选)— 要推送上传文件的分支。 -
commit_description
(str
,可选)— 将要创建的提交的描述 -
tags
(List[str]
,可选)— 要在 Hub 上推送的标签列表。
将图像处理器文件上传到模型中心。
示例:
from transformers import AutoImageProcessor
image processor = AutoImageProcessor.from_pretrained("bert-base-cased")
# Push the image processor to your namespace with the name "my-finetuned-bert".
image processor.push_to_hub("my-finetuned-bert")
# Push the image processor to an organization with the name "my-finetuned-bert".
image processor.push_to_hub("huggingface/my-finetuned-bert")
register_for_auto_class
( auto_class = 'AutoImageProcessor' )
参数
auto_class
(str
或type
,可选,默认为"AutoImageProcessor"
)— 要将此新图像处理器注册到的自动类。
将此类注册到给定的 auto 类。这仅应用于自定义图像处理器,因为库中的处理器已经与AutoImageProcessor
映射。
此 API 是实验性的,可能在下一个版本中有一些轻微的破坏性更改。
save_pretrained
( save_directory: Union push_to_hub: bool = False **kwargs )
参数
-
save_directory
(str
或os.PathLike
)— 将保存图像处理器 JSON 文件的目录(如果不存在,将创建)。 -
push_to_hub
(bool
,可选,默认为False
)— 是否在保存后将模型推送到 Hugging Face 模型中心。您可以使用repo_id
指定要推送到的存储库(将默认为您的命名空间中save_directory
的名称)。 -
kwargs
(Dict[str, Any]
,可选)— 传递给 push_to_hub()方法的额外关键字参数。
将图像处理器对象保存到目录save_directory
中,以便可以使用 from_pretrained()类方法重新加载。
to_dict
( ) → export const metadata = 'undefined';Dict[str, Any]
返回
Dict[str, Any]
包含此图像处理器实例的所有属性的字典。
将此实例序列化为 Python 字典。
to_json_file
( json_file_path: Union )
参数
json_file_path
(str
或os.PathLike
)— 保存此 image_processor 实例参数的 JSON 文件路径。
将此实例保存到 JSON 文件中。
to_json_string
( ) → export const metadata = 'undefined';str
返回
str
包含构成此 feature_extractor 实例的所有属性的字符串,以 JSON 格式呈现。
将此实例序列化为 JSON 字符串。
特征提取器的实用程序
原文:
huggingface.co/docs/transformers/v4.37.2/en/internal/audio_utils
此页面列出了所有可以被音频 FeatureExtractor
使用的实用函数,以便使用常见算法(如 短时傅里叶变换 或 对数梅尔频谱图)从原始音频中计算特殊特征。
大多数情况下,这些只有在研究库中音频处理器的代码时才有用。
音频转换
transformers.audio_utils.hertz_to_mel
( freq: Union mel_scale: str = 'htk' ) → export const metadata = 'undefined';float or np.ndarray
参数
-
freq
(float
或np.ndarray
) — 要转换的频率,或多个频率,单位为赫兹(Hz)。 -
mel_scale
(str
, 可选, 默认为"htk"
) — 要使用的梅尔频率刻度,"htk"
、"kaldi"
或"slaney"
。
返回
float
或 np.ndarray
梅尔刻度上的频率。
将频率从赫兹转换为梅尔。
transformers.audio_utils.mel_to_hertz
( mels: Union mel_scale: str = 'htk' ) → export const metadata = 'undefined';float or np.ndarray
参数
-
mels
(float
或np.ndarray
) — 要转换的频率,或多个频率,单位为梅尔。 -
mel_scale
(str
, 可选,"htk"
) — 要使用的梅尔频率刻度,"htk"
、"kaldi"
或"slaney"
。
返回
float
或 np.ndarray
赫兹频率。
将频率从梅尔转换为赫兹。
transformers.audio_utils.mel_filter_bank
( num_frequency_bins: int num_mel_filters: int min_frequency: float max_frequency: float sampling_rate: int norm: Optional = None mel_scale: str = 'htk' triangularize_in_mel_space: bool = False ) → export const metadata = 'undefined';np.ndarray of shape (num_frequency_bins, num_mel_filters)
参数
-
num_frequency_bins
(int
) — 用于计算频谱图的频率数量(应与stft
中的相同)。 -
num_mel_filters
(int
) — 要生成的梅尔滤波器数量。 -
min_frequency
(float
) — 感兴趣的最低频率,单位为赫兹。 -
max_frequency
(float
) — 感兴趣的最高频率,单位为赫兹。不应超过sampling_rate / 2
。 -
sampling_rate
(int
) — 音频波形的采样率。 -
norm
(str
, 可选) — 如果为"slaney"
,则通过梅尔带宽的宽度来除以三角形梅尔权重(面积归一化)。 -
mel_scale
(str
, 可选, 默认为"htk"
) — 要使用的梅尔频率刻度,"htk"
、"kaldi"
或"slaney"
。 -
triangularize_in_mel_space
(bool
, 可选, 默认为False
) — 如果启用此选项,则三角形滤波器将在梅尔空间而不是频率空间中应用。为了获得与计算梅尔滤波器时torchaudio
相同的结果,应将此设置为true
。
返回
形状为 (num_frequency_bins
, num_mel_filters
) 的 np.ndarray
三角形滤波器组矩阵。这是一个投影矩阵,用于从频谱图到梅尔频谱图的转换。
创建用于获取梅尔频谱图的频率箱转换矩阵。这称为 梅尔滤波器组,存在各种实现,这些实现在滤波器数量、滤波器形状、滤波器间距、滤波器带宽以及频谱变形方式上有所不同。这些特征的目标是近似人类对频率变化的非线性感知。
文献中引入了不同的梅尔滤波器组。支持以下变体:
-
MFCC FB-20: 由 Davis 和 Mermelstein 于 1980 年提出,假设采样频率为 10 kHz,语音带宽为
[0, 4600]
Hz。 -
MFCC FB-24 HTK: 来自剑桥 HMM 工具包(HTK)(1995 年),使用 24 个滤波器的滤波器组,语音带宽为
[0, 8000]
Hz。假设采样率 ≥ 16 kHz。 -
MFCC FB-40: 由 Slaney 于 1998 年编写的 MATLAB 听觉工具箱,假设采样率为 16 kHz,语音带宽为
[133, 6854]
Hz。此版本还包括面积归一化。 -
Skowronski 和 Harris(2004)的 HFCC-E FB-29(人类因素倒谱系数),假设采样率为 12.5 kHz,语音带宽为
[0, 6250]
Hz。
此代码改编自torchaudio和librosa。请注意,torchaudio 的melscale_fbanks
的默认参数实现了"htk"
滤波器,而 librosa 使用"slaney"
实现。
transformers.audio_utils.optimal_fft_length
( window_length: int )
找到给定window_length
的最佳 FFT 输入大小。此函数接受给定的窗口长度,如果不是 2 的幂,则将其四舍五入到下一个 2 的幂。
FFT 算法在输入长度为 2 的幂时运行最快,这可能比窗口或分析帧的大小更大。例如,如果窗口是 400 个样本,使用 512 个样本的 FFT 输入大小比 400 个样本的 FFT 大小更优。使用更大的 FFT 大小不会影响检测到的频率,它只是提供了更高的频率分辨率(即频率箱更小)。
transformers.audio_utils.window_function
( window_length: int name: str = 'hann' periodic: bool = True frame_length: Optional = None center: bool = True )
参数
-
window_length
(int
)- 窗口的长度(以样本为单位)。 -
name
(str
,可选,默认为"hann"
)- 窗口函数的名称。 -
periodic
(bool
,可选,默认为True
)- 窗口是否周期性或对称。 -
frame_length
(int
,可选)- 分析帧的长度(以样本为单位)。如果窗口比帧长度小,请为frame_length
提供一个值,以便进行零填充。 -
center
(bool
,可选,默认为True
)- 是否将窗口居中在 FFT 缓冲区内。仅在提供frame_length
时使用。
返回一个包含指定窗口的数组。这个窗口旨在与stft
一起使用。
支持以下窗口类型:
-
"boxcar"
:一个矩形窗口 -
"hamming"
:汉明窗口 -
"hann"
:汉宁窗口 -
"povey"
:波维窗口
transformers.audio_utils.spectrogram
( waveform: ndarray window: ndarray frame_length: int hop_length: int fft_length: Optional = None power: Optional = 1.0 center: bool = True pad_mode: str = 'reflect' onesided: bool = True preemphasis: Optional = None mel_filters: Optional = None mel_floor: float = 1e-10 log_mel: Optional = None reference: float = 1.0 min_value: float = 1e-10 db_range: Optional = None remove_dc_offset: Optional = None dtype: dtype = <class 'numpy.float32'> )
参数
-
waveform
(形状为(length,)
的np.ndarray
)- 输入波形。这必须是单声道的实值波形。 -
window
(形状为(frame_length,)
的np.ndarray
)- 要应用的窗函数,包括必要时的零填充。实际窗口长度可能比frame_length
短,但我们假设数组已经被零填充。 -
frame_length
(int
)- 分析帧的长度(以样本为单位)。在 librosa 中,这总是等于fft_length
,但我们也允许更小的尺寸。 -
hop_length
(int
)- 分析帧之间的连续跨度(以样本为单位)。 -
fft_length
(int
,可选)- FFT 缓冲区的大小(以样本为单位)。这决定了频谱图将具有多少频率箱。为了获得最佳速度,这应该是 2 的幂。如果为None
,则使用frame_length
。 -
power
(float
,可选,默认为 1.0)- 如果为 1.0,则返回幅度谱图。如果为 2.0,则返回功率谱图。如果为None
,则返回复数。 -
center
(bool
,可选,默认为True
)- 是否填充波形,使得帧t
围绕时间t * hop_length
居中。如果为False
,帧t
将从时间t * hop_length
开始。 -
pad_mode
(str
,可选,默认为"reflect"
)- 当center
为True
时使用的填充模式。可能的值为:"constant"
(用零填充)、"edge"
(用边缘值填充)、"reflect"
(用镜像值填充)。 -
onesided
(bool
,可选,默认为True
)- 如果为 True,则仅计算正频率并返回包含fft_length // 2 + 1
个频率箱的谱图。如果为 False,还会计算负频率并返回fft_length
个频率箱。 -
preemphasis
(float
, optional) — 在 DFT 之前应用预加重的低通滤波器的系数。 -
mel_filters
(np.ndarray
,形状为(num_freq_bins, num_mel_filters)
,optional) — 梅尔滤波器组。如果提供,将应用此滤波器组以创建梅尔频谱图。 -
mel_floor
(float
, optional,默认为 1e-10) — 梅尔频率组的最小值。 -
log_mel
(str
, optional) — 如何将频谱图转换为对数刻度。可能的选项有:None
(不转换),"log"
(取自然对数)"log10"
(取以 10 为底的对数),"dB"
(转换为分贝)。只能在power
不为None
时使用。 -
reference
(float
, optional,默认为 1.0) — 设置对应于 0 dB 的输入频谱图值。例如,使用np.max(spectrogram)
将最响亮的部分设置为 0 dB。必须大于零。 -
min_value
(float
, optional,默认为1e-10
) — 在转换为分贝之前,将频谱图剪切到此最小值,以避免取log(0)
。对于功率频谱图,默认值1e-10
对应于-100 dB。对于振幅频谱图,值1e-5
对应于-100 dB。必须大于零。 -
db_range
(float
, optional) — 设置分贝中的最大动态范围。例如,如果db_range = 80
,峰值和最小值之间的差异永远不会超过 80 dB。必须大于零。 -
remove_dc_offset
(bool
, optional) — 从每个帧的波形中减去均值,在预加重之前应用。为了在计算梅尔滤波器时获得与torchaudio.compliance.kaldi.fbank
相同的结果,应将其设置为true
。 -
dtype
(np.dtype
, optional,默认为np.float32
) — 频谱图张量的数据类型。如果power
为 None,则忽略此参数,数据类型将为np.complex64
。
使用短时傅里叶变换计算一个波形的频谱图。
此函数可以创建以下类型的频谱图:
-
振幅频谱图(
power = 1.0
) -
功率频谱图(
power = 2.0
) -
复数值频谱图(
power = None
) -
对数频谱图(使用
log_mel
参数) -
梅尔频谱图(提供
mel_filters
) -
对数梅尔频谱图(提供
mel_filters
和log_mel
)
工作原理:
-
输入波形被分割成大小为
frame_length
的帧,这些帧部分重叠了frame_length
个样本。hop_length
个样本。
-
每个帧都乘以窗口,并放入大小为
fft_length
的缓冲区中。 -
对每个窗口帧进行 DFT。
-
结果被堆叠成一个频谱图。
我们区分以下“块”样本数据,每个样本数据可能具有不同的长度:
-
分析帧。这是将输入波形分割成的时间片段的大小。
-
窗口。每个分析帧都乘以窗口以避免频谱泄漏。
-
FFT 输入缓冲区。其长度决定了频谱图中有多少频率箱。
在此实现中,假定窗口被零填充以具有与分析帧相同的大小。可以从window_function()
获得填充的窗口。FFT 输入缓冲区可能比分析帧大,通常是下一个二的幂。
注意:此函数尚未针对速度进行优化。它应该与librosa.stft
和torchaudio.functional.transforms.Spectrogram
大部分兼容,尽管由于构建频谱图的不同方式,它更加灵活。
transformers.audio_utils.power_to_db
( spectrogram: ndarray reference: float = 1.0 min_value: float = 1e-10 db_range: Optional = None ) → export const metadata = 'undefined';np.ndarray
参数
-
spectrogram
(np.ndarray
) — 输入功率(梅尔)频谱图。请注意,功率频谱图的振幅已经平方! -
reference
(float
, optional,默认为 1.0) — 设置对应于 0 dB 的输入频谱图值。例如,使用np.max(spectrogram)
将最响亮的部分设置为 0 dB。必须大于零。 -
min_value
(float
, optional, 默认为1e-10
) — 在转换为分贝之前,将频谱图剪切到此最小值,以避免取log(0)
。默认值1e-10
对应于最小值为-100 dB。必须大于零。 -
db_range
(float
, optional) — 设置分贝的最大动态范围。例如,如果db_range = 80
,峰值和最小值之间的差异永远不会超过 80 dB。必须大于零。
返回
np.ndarray
以分贝为单位的频谱图
将功率频谱图转换为分贝刻度。这使用基本对数属性计算10 * log10(spectrogram / reference)
,以确保数值稳定性。
将对(mel)频谱图应用对数函数的动机是人类听不到响度的线性刻度。通常,要使声音的感知音量加倍,我们需要将 8 倍的能量投入其中。这意味着如果声音本来就很大,那么能量的大变化可能听起来并不那么不同。这种压缩操作使(mel)频谱图特征更接近人类实际听到的声音。
基于librosa.power_to_db
的实现。
transformers.audio_utils.amplitude_to_db
( spectrogram: ndarray reference: float = 1.0 min_value: float = 1e-05 db_range: Optional = None ) → export const metadata = 'undefined';np.ndarray
参数
-
spectrogram
(np.ndarray
) — 输入振幅(mel)频谱图。 -
reference
(float
, optional, 默认为 1.0) — 设置对应于 0 dB 的输入频谱图值。例如,使用np.max(spectrogram)
将最响亮的部分设置为 0 dB。必须大于零。 -
min_value
(float
, optional, 默认为1e-5
) — 在转换为分贝之前,将频谱图剪切到此最小值,以避免取log(0)
。默认值1e-5
对应于最小值为-100 dB。必须大于零。 -
db_range
(float
, optional) — 设置分贝的最大动态范围。例如,如果db_range = 80
,峰值和最小值之间的差异永远不会超过 80 dB。必须大于零。
返回
np.ndarray
以分贝为单位的频谱图
将振幅频谱图转换为分贝刻度。这使用基本对数属性计算20 * log10(spectrogram / reference)
,以确保数值稳定性。
将对(mel)频谱图应用对数函数的动机是人类听不到响度的线性刻度。通常,要使声音的感知音量加倍,我们需要将 8 倍的能量投入其中。这意味着如果声音本来就很大,那么能量的大变化可能听起来并不那么不同。这种压缩操作使(mel)频谱图特征更接近人类实际听到的声音。
通用实用程序
原始文本:
huggingface.co/docs/transformers/v4.37.2/en/internal/file_utils
此页面列出了在文件utils.py
中找到的所有 Transformers 通用实用函数。
大多数情况下,这些只在研究库中的通用代码时才有用。
枚举和命名元组
class transformers.utils.ExplicitEnum
( value names = None module = None qualname = None type = None start = 1 )
具有更明确错误消息的枚举,用于缺少值。
class transformers.utils.PaddingStrategy
( value names = None module = None qualname = None type = None start = 1 )
[PreTrainedTokenizerBase.call()]中padding
参数的可能值。在 IDE 中用于制表完成。
class transformers.TensorType
( value names = None module = None qualname = None type = None start = 1 )
[PreTrainedTokenizerBase.call()]中return_tensors
参数的可能值。在 IDE 中用于制表完成。
特殊装饰器
transformers.add_start_docstrings
( *docstr )
transformers.utils.add_start_docstrings_to_model_forward
( *docstr )
transformers.add_end_docstrings
( *docstr )
transformers.utils.add_code_sample_docstrings
( *docstr processor_class = None checkpoint = None output_type = None config_class = None mask = '[MASK]' qa_target_start_index = 14 qa_target_end_index = 15 model_cls = None modality = None expected_output = None expected_loss = None real_checkpoint = None revision = None )
transformers.utils.replace_return_docstrings
( output_type = None config_class = None )
特殊属性
class transformers.utils.cached_property
( fget = None fset = None fdel = None doc = None )
模拟@property 但在成员变量中缓存输出的描述符。
来自 tensorflow_datasets
Python 3.8 中内置的 functools。
其他实用工具
class transformers.utils._LazyModule
( name module_file import_structure module_spec = None extra_objects = None )
模块类,展示所有对象,但仅在请求对象时执行相关导入。
时间序列工具
原始文本:
huggingface.co/docs/transformers/v4.37.2/en/internal/time_series_utils
此页面列出了所有可用于基于时间序列的模型的实用函数和类。
大多数情况下,这些只有在您研究时间序列模型的代码或者希望添加到分布输出类集合时才有用。
分布输出
class transformers.time_series_utils.NormalOutput
( dim: int = 1 )
正态分布输出类。
class transformers.time_series_utils.StudentTOutput
( dim: int = 1 )
学生 T 分布输出类。
class transformers.time_series_utils.NegativeBinomialOutput
( dim: int = 1 )
负二项分布输出类。
Transformers
原文链接:
huggingface.co/docs/transformers/v4.37.2/en/index#-transformers
最先进的机器学习技术适用于 PyTorch、TensorFlow 和 JAX。
Transformers 提供了 API 和工具,可以轻松下载和训练最先进的预训练模型。使用预训练模型可以减少计算成本、碳足迹,并节省训练模型所需的时间和资源。这些模型支持不同模态的常见任务,例如:
自然语言处理:文本分类、命名实体识别、问答、语言建模、摘要、翻译、多项选择和文本生成。
️ 计算机视觉:图像分类、目标检测和分割。
️ 音频:自动语音识别和音频分类。
多模态:表格问答、光学字符识别、从扫描文档中提取信息、视频分类和视觉问答。
Transformers 支持 PyTorch、TensorFlow 和 JAX 之间的框架互操作性。这提供了在模型的生命周期的每个阶段使用不同框架的灵活性;在一个框架中用三行代码训练模型,然后在另一个框架中加载进行推断。模型还可以导出为像 ONNX 和 TorchScript 这样的格式,用于在生产环境中部署。
立即加入 Hub、论坛 或 Discord 上不断增长的社区!
如果您正在寻找 Hugging Face 团队的定制支持
目录
文档分为五个部分:
-
入门指南 提供了对库的快速介绍和安装说明,帮助您快速上手。
-
教程 是初学者开始的好地方。本节将帮助您获得开始使用库所需的基本技能。
-
操作指南 展示了如何实现特定目标,比如对语言建模的预训练模型进行微调,或者如何编写和分享自定义模型。
-
概念指南 提供了更多关于 Transformers 模型、任务和设计理念背后的概念和思想的讨论和解释。
-
API 描述了所有类和函数:
-
主要类 详细介绍了配置、模型、分词器和管道等最重要的类。
-
模型 详细介绍了库中实现的每个模型相关的类和函数。
-
内部助手 详细介绍了内部使用的实用类和函数。
-
支持的模型和框架
下表表示库中对每个模型的当前支持情况,它们是否有 Python 分词器(称为“slow”)。由 Tokenizers 库支持的“fast”分词器,它们是否在 Jax(通过 Flax)、PyTorch 和/或 TensorFlow 中有支持。
模型 | PyTorch 支持 | TensorFlow 支持 | Flax 支持 |
---|---|---|---|
ALBERT | |||
ALIGN | |||
AltCLIP | |||
音频频谱变换器 | |||
Autoformer | |||
Bark | |||
BART | |||
BARThez | |||
BARTpho | |||
BEiT | |||
BERT | |||
Bert 生成 | |||
BertJapanese | |||
BERTweet | |||
BigBird | |||
BigBird-Pegasus | |||
BioGpt | |||
BiT | |||
Blenderbot | |||
BlenderbotSmall | |||
BLIP | |||
BLIP-2 | |||
BLOOM | |||
BORT | |||
BridgeTower | |||
BROS | |||
ByT5 | |||
CamemBERT | |||
CANINE | |||
Chinese-CLIP | |||
CLAP | |||
CLIP | |||
CLIPSeg | |||
CLVP | |||
CodeGen | |||
CodeLlama | |||
Conditional DETR | |||
ConvBERT | |||
ConvNeXT | |||
ConvNeXTV2 | |||
CPM | |||
CPM-Ant | |||
CTRL | |||
CvT | |||
Data2VecAudio | |||
Data2VecText | |||
Data2VecVision | |||
DeBERTa | |||
DeBERTa-v2 | |||
Decision Transformer | |||
Deformable DETR | |||
DeiT | |||
DePlot | |||
DETA | |||
DETR | |||
DialoGPT | |||
DiNAT | |||
DINOv2 | |||
DistilBERT | |||
DiT | |||
DonutSwin | |||
DPR | |||
DPT | |||
EfficientFormer | |||
EfficientNet | |||
ELECTRA | |||
EnCodec | |||
Encoder decoder | |||
ERNIE | |||
ErnieM | |||
ESM | |||
FairSeq Machine-Translation | |||
Falcon | |||
FastSpeech2Conformer | |||
FLAN-T5 | |||
FLAN-UL2 | |||
FlauBERT | |||
FLAVA | |||
FNet | |||
FocalNet | |||
Funnel Transformer | |||
Fuyu | |||
GIT | |||
GLPN | |||
GPT Neo | |||
GPT NeoX | |||
GPT NeoX Japanese | |||
GPT-J | |||
GPT-Sw3 | |||
GPTBigCode | |||
GPTSAN-japanese | |||
Graphormer | |||
GroupViT | |||
HerBERT | |||
Hubert | |||
I-BERT | |||
IDEFICS | |||
ImageGPT | |||
Informer | |||
InstructBLIP | |||
Jukebox | |||
KOSMOS-2 | |||
LayoutLM | |||
LayoutLMv2 | |||
LayoutLMv3 | |||
LayoutXLM | |||
LED | |||
LeViT | |||
LiLT | |||
LLaMA | |||
Llama2 | |||
LLaVa | |||
Longformer | |||
LongT5 | |||
LUKE | |||
LXMERT | |||
M-CTC-T | |||
M2M100 | |||
MADLAD-400 | |||
Marian | |||
MarkupLM | |||
Mask2Former | |||
MaskFormer | |||
MatCha | |||
mBART | |||
mBART-50 | |||
MEGA | |||
Megatron-BERT | |||
Megatron-GPT2 | |||
MGP-STR | |||
Mistral | |||
Mixtral | |||
mLUKE | |||
MMS | |||
MobileBERT | |||
MobileNetV1 | |||
MobileNetV2 | |||
MobileViT | |||
MobileViTV2 | |||
MPNet | |||
MPT | |||
MRA | |||
MT5 | |||
MusicGen | |||
MVP | |||
NAT | |||
Nezha | |||
NLLB | |||
NLLB-MOE | |||
Nougat | |||
Nyströmformer | |||
OneFormer | |||
OpenAI GPT | |||
OpenAI GPT-2 | |||
OpenLlama | |||
OPT | |||
OWL-ViT | |||
OWLv2 | |||
PatchTSMixer | |||
PatchTST | |||
Pegasus | |||
PEGASUS-X | |||
Perceiver | |||
Persimmon | |||
Phi | |||
PhoBERT | |||
Pix2Struct | |||
PLBart | |||
PoolFormer | |||
Pop2Piano | |||
ProphetNet | |||
PVT | |||
QDQBert | |||
Qwen2 | |||
RAG | |||
REALM | |||
Reformer | |||
RegNet | |||
RemBERT | |||
ResNet | |||
RetriBERT | |||
RoBERTa | |||
RoBERTa-PreLayerNorm | |||
RoCBert | |||
RoFormer | |||
RWKV | |||
SAM | |||
SeamlessM4T | |||
SeamlessM4Tv2 | |||
SegFormer | |||
SEW | |||
SEW-D | |||
SigLIP | |||
Speech Encoder decoder | |||
Speech2Text | |||
SpeechT5 | |||
Splinter | |||
SqueezeBERT | |||
SwiftFormer | |||
Swin Transformer | |||
Swin Transformer V2 | |||
Swin2SR | |||
SwitchTransformers | |||
T5 | |||
T5v1.1 | |||
Table Transformer | |||
TAPAS | |||
TAPEX | |||
Time Series Transformer | |||
TimeSformer | |||
Trajectory Transformer | |||
Transformer-XL | |||
TrOCR | |||
TVLT | |||
TVP | |||
UL2 | |||
UMT5 | |||
UniSpeech | |||
UniSpeechSat | |||
UnivNet | |||
UPerNet | |||
VAN | |||
VideoMAE | |||
ViLT | |||
VipLlava | |||
Vision Encoder decoder | |||
VisionTextDualEncoder | |||
VisualBERT | |||
ViT | |||
ViT Hybrid | |||
VitDet | |||
ViTMAE | |||
ViTMatte | |||
ViTMSN | |||
VITS | |||
ViViT | |||
Wav2Vec2 | |||
Wav2Vec2-BERT | |||
Wav2Vec2-Conformer | |||
Wav2Vec2Phoneme | |||
WavLM | |||
Whisper | |||
X-CLIP | |||
X-MOD | |||
XGLM | |||
XLM | |||
XLM-ProphetNet | |||
XLM-RoBERTa | |||
XLM-RoBERTa-XL | |||
XLM-V | |||
XLNet | |||
XLS-R | |||
XLSR-Wav2Vec2 | |||
YOLOS | |||
YOSO |
Transformers
PyTorch,TensorFlow和JAX的最先进机器学习。
Transformers 提供 API 和工具,可轻松下载和训练最先进的预训练模型。使用预训练模型可以减少计算成本,碳足迹,并节省训练模型所需的时间和资源。这些模型支持不同模态中的常见任务,例如:
自然语言处理:文本分类,命名实体识别,问答,语言建模,摘要,翻译,多项选择和文本生成。
️ 计算机视觉:图像分类,目标检测和分割。
️ 音频:自动语音识别和音频分类。
多模态:表格问答,光学字符识别,从扫描文档中提取信息,视频分类和视觉问答。
Transformers 支持 PyTorch,TensorFlow 和 JAX 之间的框架互操作性。这提供了在模型生命周期的每个阶段使用不同框架的灵活性;在一个框架中用三行代码训练模型,然后在另一个框架中加载进行推断。模型也可以导出到类似 ONNX 和 TorchScript 的格式,用于在生产环境中部署。
如果您正在寻找 Hugging Face 团队的定制支持
目录
文档分为五个部分:
-
开始提供了一个快速浏览库和安装说明,让您快速上手。
-
教程是初学者开始的好地方。本节将帮助您获得开始使用库所需的基本技能。
-
如何指南向您展示如何实现特定目标,比如微调预训练模型进行语言建模,或者如何编写和分享自定义模型。
-
概念指南提供了更多关于模型,任务和 Transformers 设计哲学背后的概念和思想的讨论和解释。
-
API描述了所有类和函数:
-
主要类详细介绍了最重要的类,如配置,模型,分词器和管道。
-
模型详细介绍了库中实现的每个模型相关的类和函数。
-
内部助手详细介绍了内部使用的实用类和函数。
-
支持的模型和框架
下表表示库中每个模型的当前支持情况,它们是否有 Python 分词器(称为“slow”)。由 Tokenizers 库支持的“fast”分词器,它们是否在 Jax(通过 Flax),PyTorch 和/或 TensorFlow 中有支持。
模型 | PyTorch 支持 | TensorFlow 支持 | Flax 支持 |
---|---|---|---|
ALBERT | |||
ALIGN | |||
AltCLIP | |||
Audio Spectrogram Transformer | |||
Autoformer | |||
Bark | |||
BART | |||
BARThez | |||
BARTpho | |||
BEiT | |||
BERT | |||
Bert Generation | |||
BertJapanese | |||
BERTweet | |||
BigBird | |||
BigBird-Pegasus | |||
BioGpt | |||
BiT | |||
Blenderbot | |||
BlenderbotSmall | |||
BLIP | |||
BLIP-2 | |||
BLOOM | |||
BORT | |||
BridgeTower | |||
BROS | |||
ByT5 | |||
CamemBERT | |||
CANINE | |||
Chinese-CLIP | |||
CLAP | |||
CLIP | |||
CLIPSeg | |||
CLVP | |||
CodeGen | |||
CodeLlama | |||
Conditional DETR | |||
ConvBERT | |||
ConvNeXT | |||
ConvNeXTV2 | |||
CPM | |||
CPM-Ant | |||
CTRL | |||
CvT | |||
Data2VecAudio | |||
Data2VecText | |||
Data2VecVision | |||
DeBERTa | |||
DeBERTa-v2 | |||
Decision Transformer | |||
Deformable DETR | |||
DeiT | |||
DePlot | |||
DETA | |||
DETR | |||
DialoGPT | |||
DiNAT | |||
DINOv2 | |||
DistilBERT | |||
DiT | |||
DonutSwin | |||
DPR | |||
DPT | |||
EfficientFormer | |||
EfficientNet | |||
ELECTRA | |||
EnCodec | |||
Encoder decoder | |||
ERNIE | |||
ErnieM | |||
ESM | |||
FairSeq Machine-Translation | |||
Falcon | |||
FastSpeech2Conformer | |||
FLAN-T5 | |||
FLAN-UL2 | |||
FlauBERT | |||
FLAVA | |||
FNet | |||
FocalNet | |||
Funnel Transformer | |||
Fuyu | |||
GIT | |||
GLPN | |||
GPT Neo | |||
GPT NeoX | |||
GPT NeoX Japanese | |||
GPT-J | |||
GPT-Sw3 | |||
GPTBigCode | |||
GPTSAN-japanese | |||
Graphormer | |||
GroupViT | |||
HerBERT | |||
Hubert | |||
I-BERT | |||
IDEFICS | |||
ImageGPT | |||
Informer | |||
InstructBLIP | |||
Jukebox | |||
KOSMOS-2 | |||
LayoutLM | |||
LayoutLMv2 | |||
LayoutLMv3 | |||
LayoutXLM | |||
LED | |||
LeViT | |||
LiLT | |||
LLaMA | |||
Llama2 | |||
LLaVa | |||
Longformer | |||
LongT5 | |||
LUKE | |||
LXMERT | |||
M-CTC-T | |||
M2M100 | |||
MADLAD-400 | |||
Marian | |||
MarkupLM | |||
Mask2Former | |||
MaskFormer | |||
MatCha | |||
mBART | |||
mBART-50 | |||
MEGA | |||
Megatron-BERT | |||
Megatron-GPT2 | |||
MGP-STR | |||
Mistral | |||
Mixtral | |||
mLUKE | |||
MMS | |||
MobileBERT | |||
MobileNetV1 | |||
MobileNetV2 | |||
MobileViT | |||
MobileViTV2 | |||
MPNet | |||
MPT | |||
MRA | |||
MT5 | |||
MusicGen | |||
MVP | |||
NAT | |||
Nezha | |||
NLLB | |||
NLLB-MOE | |||
Nougat | |||
Nyströmformer | |||
OneFormer | |||
OpenAI GPT | |||
OpenAI GPT-2 | |||
OpenLlama | |||
OPT | |||
OWL-ViT | |||
OWLv2 | |||
PatchTSMixer | |||
PatchTST | |||
Pegasus | |||
PEGASUS-X | |||
Perceiver | |||
Persimmon | |||
Phi | |||
PhoBERT | |||
Pix2Struct | |||
PLBart | |||
PoolFormer | |||
Pop2Piano | |||
ProphetNet | |||
PVT | |||
QDQBert | |||
Qwen2 | |||
RAG | |||
REALM | |||
Reformer | |||
RegNet | |||
RemBERT | |||
ResNet | |||
RetriBERT | |||
RoBERTa | |||
RoBERTa-PreLayerNorm | |||
RoCBert | |||
RoFormer | |||
RWKV | |||
SAM | |||
SeamlessM4T | |||
SeamlessM4Tv2 | |||
SegFormer | |||
SEW | |||
SEW-D | |||
SigLIP | |||
Speech Encoder decoder | |||
Speech2Text | |||
SpeechT5 | |||
Splinter | |||
SqueezeBERT | |||
SwiftFormer | |||
Swin Transformer | |||
Swin Transformer V2 | |||
Swin2SR | |||
SwitchTransformers | |||
T5 | |||
T5v1.1 | |||
Table Transformer | |||
TAPAS | |||
TAPEX | |||
Time Series Transformer | |||
TimeSformer | |||
Trajectory Transformer | |||
Transformer-XL | |||
TrOCR | |||
TVLT | |||
TVP | |||
UL2 | |||
UMT5 | |||
UniSpeech | |||
UniSpeechSat | |||
UnivNet | |||
UPerNet | |||
VAN | |||
VideoMAE | |||
ViLT | |||
VipLlava | |||
Vision Encoder decoder | |||
VisionTextDualEncoder | |||
VisualBERT | |||
ViT | |||
ViT Hybrid | |||
VitDet | |||
ViTMAE | |||
ViTMatte | |||
ViTMSN | |||
VITS | |||
ViViT | |||
Wav2Vec2 | |||
Wav2Vec2-BERT | |||
Wav2Vec2-Conformer | |||
Wav2Vec2Phoneme | |||
WavLM | |||
Whisper | |||
X-CLIP | |||
X-MOD | |||
XGLM | |||
XLM | |||
XLM-ProphetNet | |||
XLM-RoBERTa | |||
XLM-RoBERTa-XL | |||
XLM-V | |||
XLNet | |||
XLS-R | |||
XLSR-Wav2Vec2 | |||
YOLOS | |||
YOSO |
Transformers
原文链接:
huggingface.co/docs/transformers/v4.37.2/en/index#contents
PyTorch、TensorFlow和JAX的最先进机器学习。
Transformers 提供 API 和工具,可轻松下载和训练最先进的预训练模型。使用预训练模型可以减少计算成本、碳足迹,并节省训练模型所需的时间和资源。这些模型支持不同模态的常见任务,如:
自然语言处理:文本分类、命名实体识别、问答、语言建模、摘要、翻译、多项选择和文本生成。
️ 计算机视觉:图像分类、目标检测和分割。
️ 音频:自动语音识别和音频分类。
多模态:表格问答、光学字符识别、从扫描文档中提取信息、视频分类和视觉问答。
Transformers 支持 PyTorch、TensorFlow 和 JAX 之间的框架互操作性。这提供了在模型的生命周期的每个阶段使用不同框架的灵活性;在一个框架中用三行代码训练模型,然后在另一个框架中加载进行推断。模型还可以导出到 ONNX 和 TorchScript 等格式,以在生产环境中部署。
如果您正在寻找 Hugging Face 团队的定制支持
目录
文档分为五个部分:
-
开始提供了一个快速浏览库和安装说明,让您快速上手。
-
教程是初学者入门的好地方。本节将帮助您获得开始使用库所需的基本技能。
-
操作指南向您展示如何实现特定目标,比如微调预训练模型用于语言建模,或者如何编写和分享自定义模型。
-
概念指南提供了更多关于模型、任务和 Transformers 设计理念背后的概念和想法的讨论和解释。
-
API描述了所有类和函数:
-
主要类详细介绍了配置、模型、分词器和管道等最重要的类。
-
模型详细介绍了库中实现的每个模型相关的类和函数。
-
内部助手详细介绍了内部使用的实用类和函数。
-
支持的模型和框架
下表表示库中对每个模型的当前支持情况,它们是否有 Python 分词器(称为“slow”)。一个由 Tokenizers 库支持的“fast”分词器,以及它们在 Jax(通过 Flax)、PyTorch 和/或 TensorFlow 中的支持情况。
模型 | PyTorch 支持 | TensorFlow 支持 | Flax 支持 |
---|---|---|---|
ALBERT | |||
ALIGN | |||
AltCLIP | |||
音频频谱变换器 | |||
Autoformer | |||
Bark | |||
BART | |||
BARThez | |||
BARTpho | |||
BEiT | |||
BERT | |||
Bert 生成 | |||
Bert 日语 | |||
BERTweet | |||
BigBird | |||
BigBird-Pegasus | |||
BioGpt | |||
BiT | |||
Blenderbot | |||
BlenderbotSmall | |||
BLIP | |||
BLIP-2 | |||
BLOOM | |||
BORT | |||
BridgeTower | |||
BROS | |||
ByT5 | |||
CamemBERT | |||
CANINE | |||
Chinese-CLIP | |||
CLAP | |||
CLIP | |||
CLIPSeg | |||
CLVP | |||
CodeGen | |||
CodeLlama | |||
Conditional DETR | |||
ConvBERT | |||
ConvNeXT | |||
ConvNeXTV2 | |||
CPM | |||
CPM-Ant | |||
CTRL | |||
CvT | |||
Data2VecAudio | |||
Data2VecText | |||
Data2VecVision | |||
DeBERTa | |||
DeBERTa-v2 | |||
Decision Transformer | |||
Deformable DETR | |||
DeiT | |||
DePlot | |||
DETA | |||
DETR | |||
DialoGPT | |||
DiNAT | |||
DINOv2 | |||
DistilBERT | |||
DiT | |||
DonutSwin | |||
DPR | |||
DPT | |||
EfficientFormer | |||
EfficientNet | |||
ELECTRA | |||
EnCodec | |||
Encoder decoder | |||
ERNIE | |||
ErnieM | |||
ESM | |||
FairSeq Machine-Translation | |||
Falcon | |||
FastSpeech2Conformer | |||
FLAN-T5 | |||
FLAN-UL2 | |||
FlauBERT | |||
FLAVA | |||
FNet | |||
FocalNet | |||
Funnel Transformer | |||
Fuyu | |||
GIT | |||
GLPN | |||
GPT Neo | |||
GPT NeoX | |||
GPT NeoX Japanese | |||
GPT-J | |||
GPT-Sw3 | |||
GPTBigCode | |||
GPTSAN-japanese | |||
Graphormer | |||
GroupViT | |||
HerBERT | |||
Hubert | |||
I-BERT | |||
IDEFICS | |||
ImageGPT | |||
Informer | |||
InstructBLIP | |||
Jukebox | |||
KOSMOS-2 | |||
LayoutLM | |||
LayoutLMv2 | |||
LayoutLMv3 | |||
LayoutXLM | |||
LED | |||
LeViT | |||
LiLT | |||
LLaMA | |||
Llama2 | |||
LLaVa | |||
Longformer | |||
LongT5 | |||
LUKE | |||
LXMERT | |||
M-CTC-T | |||
M2M100 | |||
MADLAD-400 | |||
Marian | |||
MarkupLM | |||
Mask2Former | |||
MaskFormer | |||
MatCha | |||
mBART | |||
mBART-50 | |||
MEGA | |||
Megatron-BERT | |||
Megatron-GPT2 | |||
MGP-STR | |||
Mistral | |||
Mixtral | |||
mLUKE | |||
MMS | |||
MobileBERT | |||
MobileNetV1 | |||
MobileNetV2 | |||
MobileViT | |||
MobileViTV2 | |||
MPNet | |||
MPT | |||
MRA | |||
MT5 | |||
MusicGen | |||
MVP | |||
NAT | |||
Nezha | |||
NLLB | |||
NLLB-MOE | |||
Nougat | |||
Nyströmformer | |||
OneFormer | |||
OpenAI GPT | |||
OpenAI GPT-2 | |||
OpenLlama | |||
OPT | |||
OWL-ViT | |||
OWLv2 | |||
PatchTSMixer | |||
PatchTST | |||
Pegasus | |||
PEGASUS-X | |||
Perceiver | |||
Persimmon | |||
Phi | |||
PhoBERT | |||
Pix2Struct | |||
PLBart | |||
PoolFormer | |||
Pop2Piano | |||
ProphetNet | |||
PVT | |||
QDQBert | |||
Qwen2 | |||
RAG | |||
REALM | |||
Reformer | |||
RegNet | |||
RemBERT | |||
ResNet | |||
RetriBERT | |||
RoBERTa | |||
RoBERTa-PreLayerNorm | |||
RoCBert | |||
RoFormer | |||
RWKV | |||
SAM | |||
SeamlessM4T | |||
SeamlessM4Tv2 | |||
SegFormer | |||
SEW | |||
SEW-D | |||
SigLIP | |||
Speech Encoder decoder | |||
Speech2Text | |||
SpeechT5 | |||
Splinter | |||
SqueezeBERT | |||
SwiftFormer | |||
Swin Transformer | |||
Swin Transformer V2 | |||
Swin2SR | |||
SwitchTransformers | |||
T5 | |||
T5v1.1 | |||
Table Transformer | |||
TAPAS | |||
TAPEX | |||
Time Series Transformer | |||
TimeSformer | |||
Trajectory Transformer | |||
Transformer-XL | |||
TrOCR | |||
TVLT | |||
TVP | |||
UL2 | |||
UMT5 | |||
UniSpeech | |||
UniSpeechSat | |||
UnivNet | |||
UPerNet | |||
VAN | |||
VideoMAE | |||
ViLT | |||
VipLlava | |||
Vision Encoder decoder | |||
VisionTextDualEncoder | |||
VisualBERT | |||
ViT | |||
ViT Hybrid | |||
VitDet | |||
ViTMAE | |||
ViTMatte | |||
ViTMSN | |||
VITS | |||
ViViT | |||
Wav2Vec2 | |||
Wav2Vec2-BERT | |||
Wav2Vec2-Conformer | |||
Wav2Vec2Phoneme | |||
WavLM | |||
Whisper | |||
X-CLIP | |||
X-MOD | |||
XGLM | |||
XLM | |||
XLM-ProphetNet | |||
XLM-RoBERTa | |||
XLM-RoBERTa-XL | |||
XLM-V | |||
XLNet | |||
XLS-R | |||
XLSR-Wav2Vec2 | |||
YOLOS | |||
YOSO |
Transformers
原文链接:
huggingface.co/docs/transformers/v4.37.2/en/index#supported-models-and-frameworks
PyTorch、TensorFlow和JAX的最先进机器学习。
Transformers 提供 API 和工具,轻松下载和训练最先进的预训练模型。使用预训练模型可以减少计算成本、碳足迹,并节省训练模型所需的时间和资源。这些模型支持不同模态的常见任务,如:
自然语言处理:文本分类、命名实体识别、问题回答、语言建模、摘要、翻译、多项选择和文本生成。
️ 计算机视觉:图像分类、目标检测和分割。
️ 音频:自动语音识别和音频分类。
多模态:表格问题回答、光学字符识别、从扫描文档中提取信息、视频分类和视觉问题回答。
Transformers 支持 PyTorch、TensorFlow 和 JAX 之间的框架互操作性。这提供了在模型的生命周期的每个阶段使用不同框架的灵活性;在一个框架中用三行代码训练模型,然后在另一个框架中加载进行推断。模型也可以导出到类似 ONNX 和 TorchScript 的格式,用于在生产环境中部署。
如果您正在寻找 Hugging Face 团队的定制支持
内容
文档分为五个部分:
-
开始提供了一个快速浏览库和安装说明,让您快速上手。
-
教程是初学者开始的好地方。本节将帮助您获得开始使用库所需的基本技能。
-
操作指南向您展示如何实现特定目标,比如微调预训练模型进行语言建模或如何编写和分享自定义模型。
-
概念指南提供了更多关于模型、任务和 Transformers 设计哲学背后的概念和思想的讨论和解释。
-
API描述了所有类和函数:
-
主要类详细介绍了配置、模型、分词器和管道等最重要的类。
-
模型详细介绍了库中每个模型相关的类和函数。
-
内部助手详细介绍了内部使用的实用类和函数。
-
支持的模型和框架
下表表示库中每个模型的当前支持情况,它们是否有 Python 分词器(称为“慢”)。由 Tokenizers 库支持的“快”分词器,它们是否在 Jax(通过 Flax)、PyTorch 和/或 TensorFlow 中有支持。
模型 | PyTorch 支持 | TensorFlow 支持 | Flax 支持 |
---|---|---|---|
ALBERT | |||
ALIGN | |||
AltCLIP | |||
音频频谱变换器 | |||
Autoformer | |||
Bark | |||
BART | |||
BARThez | |||
BARTpho | |||
BEiT | |||
BERT | |||
Bert 生成 | |||
BertJapanese | |||
BERTweet | |||
BigBird | |||
BigBird-Pegasus | |||
BioGpt | |||
BiT | |||
Blenderbot | |||
BlenderbotSmall | |||
BLIP | |||
BLIP-2 | |||
BLOOM | |||
BORT | |||
BridgeTower | |||
BROS | |||
ByT5 | |||
CamemBERT | |||
CANINE | |||
Chinese-CLIP | |||
CLAP | |||
CLIP | |||
CLIPSeg | |||
CLVP | |||
CodeGen | |||
CodeLlama | |||
Conditional DETR | |||
ConvBERT | |||
ConvNeXT | |||
ConvNeXTV2 | |||
CPM | |||
CPM-Ant | |||
CTRL | |||
CvT | |||
Data2VecAudio | |||
Data2VecText | |||
Data2VecVision | |||
DeBERTa | |||
DeBERTa-v2 | |||
Decision Transformer | |||
Deformable DETR | |||
DeiT | |||
DePlot | |||
DETA | |||
DETR | |||
DialoGPT | |||
DiNAT | |||
DINOv2 | |||
DistilBERT | |||
DiT | |||
DonutSwin | |||
DPR | |||
DPT | |||
EfficientFormer | |||
EfficientNet | |||
ELECTRA | |||
EnCodec | |||
Encoder decoder | |||
ERNIE | |||
ErnieM | |||
ESM | |||
FairSeq Machine-Translation | |||
Falcon | |||
FastSpeech2Conformer | |||
FLAN-T5 | |||
FLAN-UL2 | |||
FlauBERT | |||
FLAVA | |||
FNet | |||
FocalNet | |||
Funnel Transformer | |||
Fuyu | |||
GIT | |||
GLPN | |||
GPT Neo | |||
GPT NeoX | |||
GPT NeoX Japanese | |||
GPT-J | |||
GPT-Sw3 | |||
GPTBigCode | |||
GPTSAN-japanese | |||
Graphormer | |||
GroupViT | |||
HerBERT | |||
Hubert | |||
I-BERT | |||
IDEFICS | |||
ImageGPT | |||
Informer | |||
InstructBLIP | |||
Jukebox | |||
KOSMOS-2 | |||
LayoutLM | |||
LayoutLMv2 | |||
LayoutLMv3 | |||
LayoutXLM | |||
LED | |||
LeViT | |||
LiLT | |||
LLaMA | |||
Llama2 | |||
LLaVa | |||
Longformer | |||
LongT5 | |||
LUKE | |||
LXMERT | |||
M-CTC-T | |||
M2M100 | |||
MADLAD-400 | |||
Marian | |||
MarkupLM | |||
Mask2Former | |||
MaskFormer | |||
MatCha | |||
mBART | |||
mBART-50 | |||
MEGA | |||
Megatron-BERT | |||
Megatron-GPT2 | |||
MGP-STR | |||
Mistral | |||
Mixtral | |||
mLUKE | |||
MMS | |||
MobileBERT | |||
MobileNetV1 | |||
MobileNetV2 | |||
MobileViT | |||
MobileViTV2 | |||
MPNet | |||
MPT | |||
MRA | |||
MT5 | |||
MusicGen | |||
MVP | |||
NAT | |||
Nezha | |||
NLLB | |||
NLLB-MOE | |||
Nougat | |||
Nyströmformer | |||
OneFormer | |||
OpenAI GPT | |||
OpenAI GPT-2 | |||
OpenLlama | |||
OPT | |||
OWL-ViT | |||
OWLv2 | |||
PatchTSMixer | |||
PatchTST | |||
Pegasus | |||
PEGASUS-X | |||
Perceiver | |||
Persimmon | |||
Phi | |||
PhoBERT | |||
Pix2Struct | |||
PLBart | |||
PoolFormer | |||
Pop2Piano | |||
ProphetNet | |||
PVT | |||
QDQBert | |||
Qwen2 | |||
RAG | |||
REALM | |||
Reformer | |||
RegNet | |||
RemBERT | |||
ResNet | |||
RetriBERT | |||
RoBERTa | |||
RoBERTa-PreLayerNorm | |||
RoCBert | |||
RoFormer | |||
RWKV | |||
SAM | |||
SeamlessM4T | |||
SeamlessM4Tv2 | |||
SegFormer | |||
SEW | |||
SEW-D | |||
SigLIP | |||
Speech Encoder decoder | |||
Speech2Text | |||
SpeechT5 | |||
Splinter | |||
SqueezeBERT | |||
SwiftFormer | |||
Swin Transformer | |||
Swin Transformer V2 | |||
Swin2SR | |||
SwitchTransformers | |||
T5 | |||
T5v1.1 | |||
Table Transformer | |||
TAPAS | |||
TAPEX | |||
Time Series Transformer | |||
TimeSformer | |||
Trajectory Transformer | |||
Transformer-XL | |||
TrOCR | |||
TVLT | |||
TVP | |||
UL2 | |||
UMT5 | |||
UniSpeech | |||
UniSpeechSat | |||
UnivNet | |||
UPerNet | |||
VAN | |||
VideoMAE | |||
ViLT | |||
VipLlava | |||
Vision Encoder decoder | |||
VisionTextDualEncoder | |||
VisualBERT | |||
ViT | |||
ViT Hybrid | |||
VitDet | |||
ViTMAE | |||
ViTMatte | |||
ViTMSN | |||
VITS | |||
ViViT | |||
Wav2Vec2 | |||
Wav2Vec2-BERT | |||
Wav2Vec2-Conformer | |||
Wav2Vec2Phoneme | |||
WavLM | |||
Whisper | |||
X-CLIP | |||
X-MOD | |||
XGLM | |||
XLM | |||
XLM-ProphetNet | |||
XLM-RoBERTa | |||
XLM-RoBERTa-XL | |||
XLM-V | |||
XLNet | |||
XLS-R | |||
XLSR-Wav2Vec2 | |||
YOLOS | |||
YOSO | |||
RoFormer | |||
RWKV | |||
SAM | |||
SeamlessM4T | |||
SeamlessM4Tv2 | |||
SegFormer | |||
SEW | |||
SEW-D | |||
SigLIP | |||
Speech Encoder decoder | |||
Speech2Text | |||
SpeechT5 | |||
Splinter | |||
SqueezeBERT | |||
SwiftFormer | |||
Swin Transformer | |||
Swin Transformer V2 | |||
Swin2SR | |||
SwitchTransformers | |||
T5 | |||
T5v1.1 | |||
Table Transformer | |||
TAPAS | |||
TAPEX | |||
Time Series Transformer | |||
TimeSformer | |||
Trajectory Transformer | |||
Transformer-XL | |||
TrOCR | |||
TVLT | |||
TVP | |||
UL2 | |||
UMT5 | |||
UniSpeech | |||
UniSpeechSat | |||
UnivNet | |||
UPerNet | |||
VAN | |||
VideoMAE | |||
ViLT | |||
VipLlava | |||
Vision Encoder decoder | |||
VisionTextDualEncoder | |||
VisualBERT | |||
ViT | |||
ViT Hybrid | |||
VitDet | |||
ViTMAE | |||
ViTMatte | |||
ViTMSN | |||
VITS | |||
ViViT | |||
Wav2Vec2 | |||
Wav2Vec2-BERT | |||
Wav2Vec2-Conformer | |||
Wav2Vec2Phoneme | |||
WavLM | |||
Whisper | |||
X-CLIP | |||
X-MOD | |||
XGLM | |||
XLM | |||
XLM-ProphetNet | |||
XLM-RoBERTa | |||
XLM-RoBERTa-XL | |||
XLM-V | |||
XLNet | |||
XLS-R | |||
XLSR-Wav2Vec2 | |||
YOLOS | |||
YOSO |
文章评论