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

ViTImageConverter

[源代码]

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)

[源代码]

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 ViT-B16 模型,在 224x224 图像分辨率的 ImageNet 1k 数据集上预训练。
vit_base_patch16_224_imagenet21k 85.80M ViT-B16 骨干网络,在 224x224 图像分辨率的 ImageNet 21k 数据集上预训练。
vit_base_patch16_384_imagenet 86.09M ViT-B16 模型,在 384x384 图像分辨率的 ImageNet 1k 数据集上预训练。
vit_base_patch32_224_imagenet21k 87.46M ViT-B32 骨干网络,在 224x224 图像分辨率的 ImageNet 21k 数据集上预训练。
vit_base_patch32_384_imagenet 87.53M ViT-B32 模型,在 384x384 图像分辨率的 ImageNet 1k 数据集上预训练。
vit_large_patch16_224_imagenet 303.30M ViT-L16 模型,在 224x224 图像分辨率的 ImageNet 1k 数据集上预训练。
vit_large_patch16_224_imagenet21k 303.30M ViT-L16 骨干网络,在 224x224 图像分辨率的 ImageNet 21k 数据集上预训练。
vit_large_patch16_384_imagenet 303.69M ViT-L16 模型,在 384x384 图像分辨率的 ImageNet 1k 数据集上预训练。
vit_large_patch32_224_imagenet21k 305.51M ViT-L32 骨干网络,在 224x224 图像分辨率的 ImageNet 21k 数据集上预训练。
vit_large_patch32_384_imagenet 305.61M ViT-L32 模型,在 384x384 图像分辨率的 ImageNet 1k 数据集上预训练。
vit_huge_patch14_224_imagenet21k 630.76M ViT-H14 骨干网络,在 224x224 图像分辨率的 ImageNet 21k 数据集上预训练。