KerasHub:预训练模型 / API 文档 / 模型架构 / ViT / ViTImageConverter

ViTImageConverter

[source]

ViTImageConverter

keras_hub.layers.ViTImageConverter(
    norm_mean=[0.5, 0.5, 0.5], norm_std=[0.5, 0.5, 0.5], **kwargs
)

将图像转换为 ViT 模型所需的格式。

此层使用均值和标准差对图像进行归一化。默认情况下,它使用与 Hugging Face 上的 "google/vit-large-patch16-224" 模型相同的归一化方式:norm_mean=[0.5, 0.5, 0.5]norm_std=[0.5, 0.5, 0.5] (参考)。这些默认值适用于使用此归一化进行预训练的模型。

参数

  • norm_mean:浮点数列表或元组。用于图像归一化的均值。默认为 [0.5, 0.5, 0.5]
  • norm_std:浮点数列表或元组。用于图像归一化的标准差。默认为 [0.5, 0.5, 0.5]
  • **kwargs:传递给 keras_hub.layers.preprocessing.ImageConverter 的额外关键字参数。

示例

import keras
import numpy as np
from keras_hub.src.layers import ViTImageConverter

# Example image (replace with your actual image data)
image = np.random.rand(1, 224, 224, 3)  # # Example
 (B, H, W, C)

# Create a ViTImageConverter instance
converter = ViTImageConverter(
    image_size=(28,28),
    scale=1/255.
)
# Preprocess the image
preprocessed_image = converter(image)

[source]

from_preset 方法

ViTImageConverter.from_preset(preset, **kwargs)

从模型预设实例化一个 keras_hub.layers.ImageConverter

预设是用于保存和加载预训练模型的配置、权重和其他文件资产的目录。preset 可以是以下之一:

  1. 内置预设标识符,例如 'pali_gemma_3b_224'
  2. Kaggle Models 句柄,例如 'kaggle://user/paligemma/keras/pali_gemma_3b_224'
  3. Hugging Face 句柄,例如 'hf://user/pali_gemma_3b_224'
  4. 本地预设目录的路径,例如 './pali_gemma_3b_224'

您可以运行 cls.presets.keys() 来列出该类中所有可用的内置预设。

参数

  • preset:字符串。内置预设标识符、Kaggle Models 句柄、Hugging Face 句柄或本地目录的路径。
  • load_weights:布尔值。如果为 True,权重将被加载到模型架构中。如果为 False,权重将被随机初始化。

示例

batch = np.random.randint(0, 256, size=(2, 512, 512, 3))

# Resize images for `"pali_gemma_3b_224"`.
converter = keras_hub.layers.ImageConverter.from_preset(
    "pali_gemma_3b_224"
)
converter(batch) # # Output shape (2, 224, 224, 3)

# Resize images for `"pali_gemma_3b_448"` without cropping.
converter = keras_hub.layers.ImageConverter.from_preset(
    "pali_gemma_3b_448",
    crop_to_aspect_ratio=False,
)
converter(batch) # # Output shape (2, 448, 448, 3)
预设 参数 描述
vit_base_patch16_224_imagenet 85.80M 在 ImageNet 1k 数据集上预训练的 ViT-B16 模型,图像分辨率为 224x224
vit_base_patch16_224_imagenet21k 85.80M 在 ImageNet 21k 数据集上预训练的 ViT-B16 主干模型,图像分辨率为 224x224
vit_base_patch16_384_imagenet 86.09M 在 ImageNet 1k 数据集上预训练的 ViT-B16 模型,图像分辨率为 384x384
vit_base_patch32_224_imagenet21k 87.46M 在 ImageNet 21k 数据集上预训练的 ViT-B32 主干模型,图像分辨率为 224x224
vit_base_patch32_384_imagenet 87.53M 在 ImageNet 1k 数据集上预训练的 ViT-B32 模型,图像分辨率为 384x384
vit_large_patch16_224_imagenet 303.30M 在 ImageNet 1k 数据集上预训练的 ViT-L16 模型,图像分辨率为 224x224
vit_large_patch16_224_imagenet21k 303.30M 在 ImageNet 21k 数据集上预训练的 ViT-L16 主干模型,图像分辨率为 224x224
vit_large_patch16_384_imagenet 303.69M 在 ImageNet 1k 数据集上预训练的 ViT-L16 模型,图像分辨率为 384x384
vit_large_patch32_224_imagenet21k 305.51M 在 ImageNet 21k 数据集上预训练的 ViT-L32 主干模型,图像分辨率为 224x224
vit_large_patch32_384_imagenet 305.61M 在 ImageNet 1k 数据集上预训练的 ViT-L32 模型,图像分辨率为 384x384
vit_huge_patch14_224_imagenet21k 630.76M 在 ImageNet 21k 数据集上预训练的 ViT-H14 主干模型,图像分辨率为 224x224