Transformers 文档

图像处理器

Hugging Face's logo
加入Hugging Face社区

并获得增强的文档体验

开始使用

图像处理器

图像处理器负责为视觉模型准备输入特征并对其输出进行后处理。这包括诸如调整大小、标准化以及转换为 PyTorch、TensorFlow、Flax 和 NumPy 张量等变换。它还可以包括模型特定的后处理,例如将 logits 转换为分割掩码。

ImageProcessingMixin

transformers.ImageProcessingMixin

< >

( **kwargs )

这是一个图像处理器混合类,用于为顺序和图像特征提取器提供保存/加载功能。

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 (stros.PathLike) — 可以是以下任一:

    • 字符串,托管在 huggingface.co 上模型仓库中的预训练图像处理器的模型 ID
    • 包含使用 save_pretrained() 方法保存的图像处理器文件的目录的路径,例如 ./my_model_directory/
    • 保存的图像处理器 JSON 文件的路径或 URL,例如 ./my_model_directory/preprocessor_config.json
  • cache_dir (stros.PathLike可选) — 如果不需要使用标准缓存,则应将下载的预训练模型图像处理器缓存到的目录的路径。
  • force_download (bool可选,默认为 False) — 是否强制(重新)下载图像处理器文件并覆盖存在的缓存版本。resume_download — 已弃用且被忽略。现在所有下载默认情况下都尽可能恢复。将在 Transformers 的 v5 版本中删除。
  • proxies (Dict[str, str]可选) — 按协议或端点使用的代理服务器字典,例如 {'http': 'foo.bar:3128', 'http://hostname': 'foo.bar:4012'}. 代理用于每个请求。
  • token (strbool可选) — 用作远程文件 HTTP 载体授权的令牌。如果为 True 或未指定,则使用运行 huggingface-cli login 时生成的令牌(存储在 ~/.huggingface 中)。
  • revision (str, 可选,默认为 "main") — 使用的特定模型版本。它可以是分支名称、标签名称或提交 ID,因为我们使用基于 Git 的系统在 huggingface.co 上存储模型和其他工件,因此 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}

save_pretrained

< >

( save_directory: Union push_to_hub: bool = False **kwargs )

参数

  • save_directory (stros.PathLike) — 将保存图像处理器 JSON 文件的目录(如果不存在则会创建)。
  • push_to_hub (bool, 可选,默认为 False) — 保存模型后是否将其推送到 Hugging Face 模型中心。您可以使用 repo_id 指定要推送到其中的存储库(默认为您命名空间中 save_directory 的名称)。
  • kwargs (Dict[str, Any], 可选) — 传递到 push_to_hub() 方法的其他关键字参数。

将图像处理器对象保存到 save_directory 目录中,以便可以使用 from_pretrained() 类方法重新加载它。

BatchFeature

transformers.BatchFeature

< >

( data: Optional = None tensor_type: Union = None )

参数

  • data (dict, 可选) — call/pad 方法返回的列表/数组/张量字典(‘input_values’,‘attention_mask’ 等)。
  • tensor_type (Union[None, str, TensorType], 可选) — 您可以在此处提供 tensor_type,以便在初始化时将整数列表转换为 PyTorch/TensorFlow/Numpy 张量。

保存 pad() 和特征提取器特定 __call__ 方法的输出。

此类派生自 Python 字典,可以用作字典。

convert_to_tensors

  • tensor_type (strTensorType可选) — 要使用的张量类型。如果为 str,则应为枚举 TensorType 的值之一。如果为 None,则不进行修改。

将内部内容转换为张量。

< >

( *args **kwargs ) BatchFeature

参数

  • args (Tuple) — 将传递给张量的 to(...) 函数。
  • kwargs (Dict可选) — 将传递给张量的 to(...) 函数。

返回值

BatchFeature

修改后的同一实例。

通过调用 v.to(*args, **kwargs)(仅限 PyTorch)将所有值发送到设备。这应该支持在不同的 dtypes 中进行转换,并将 BatchFeature 发送到不同的 device

BaseImageProcessor

transformers.BaseImageProcessor

< >

( **kwargs )

中心裁剪

< >

( image: ndarray size: Dict data_format: Union = None input_data_format: Union = None **kwargs )

参数

  • image (np.ndarray) — 要进行中心裁剪的图像。
  • size (Dict[str, int]) — 输出图像的大小。
  • input_data_format (ChannelDimensionstr可选) — 输入图像的通道维度格式。如果未设置,则从输入图像推断通道维度格式。可以是以下之一:
    • "channels_first"ChannelDimension.FIRST:图像格式为 (num_channels, height, width)。
    • "channels_last"ChannelDimension.LAST:图像格式为 (height, width, num_channels)。

将图像中心裁剪到 (size["height"], size["width"])。如果输入尺寸沿任何边缘小于 crop_size,则用 0 填充图像,然后进行中心裁剪。

标准化

< >

( image: ndarray mean: Union std: Union data_format: Union = None input_data_format: Union = None **kwargs ) np.ndarray

参数

  • image (np.ndarray) — 要标准化的图像。
  • mean (floatIterable[float]) — 用于标准化的图像均值。
  • std (floatIterable[float]) — 用于标准化的图像标准差。
  • data_format (strChannelDimension可选) — 输出图像的通道维度格式。如果未设置,则使用输入图像的通道维度格式。可以是以下之一:
    • "channels_first"ChannelDimension.FIRST:图像格式为 (num_channels, height, width)。
    • "channels_last"ChannelDimension.LAST:图像格式为 (height, width, num_channels)。
  • input_data_format (ChannelDimensionstr可选) — 输入图像的通道维度格式。如果未设置,则从输入图像推断通道维度格式。可以是以下之一:
    • "channels_first"ChannelDimension.FIRST:图像格式为 (num_channels, height, width)。
    • "channels_last"ChannelDimension.LAST:图像格式为 (height, width, num_channels)。

返回值

np.ndarray

标准化的图像。

标准化图像。image = (image - image_mean) / image_std。

重新缩放

< >

( image: ndarray scale: float data_format: Union = None input_data_format: Union = None **kwargs ) np.ndarray

参数

  • image (np.ndarray) — 要重新缩放的图像。
  • scale (float) — 用于重新缩放像素值的缩放因子。
  • data_format (strChannelDimension, 可选) — 输出图像的通道维度格式。如果未设置,则使用输入图像的通道维度格式。可以是以下之一:
    • "channels_first"ChannelDimension.FIRST:图像格式为 (num_channels, height, width)。
    • "channels_last"ChannelDimension.LAST:图像格式为 (height, width, num_channels)。
  • input_data_format (ChannelDimensionstr, 可选) — 输入图像的通道维度格式。如果未设置,则从输入图像推断通道维度格式。可以是以下之一:
    • "channels_first"ChannelDimension.FIRST:图像格式为 (num_channels, height, width)。
    • "channels_last"ChannelDimension.LAST:图像格式为 (height, width, num_channels)。

返回值

np.ndarray

重新缩放后的图像。

根据缩放因子重新缩放图像。image = image * scale。

BaseImageProcessorFast

class transformers.BaseImageProcessorFast

< >

( **kwargs )

< > 在 GitHub 上更新