KerasHub:预训练模型 / API 文档 / 预处理层 / ImageConverter 层

ImageConverter 层

[source]

ImageConverter

keras_hub.layers.ImageConverter(
    image_size=None,
    scale=None,
    offset=None,
    crop_to_aspect_ratio=True,
    pad_to_aspect_ratio=False,
    interpolation="bilinear",
    bounding_box_format="yxyx",
    data_format=None,
    **kwargs
)

将原始图像预处理为模型就绪的输入。

此类将原始图像转换为模型就绪的输入。此转换按以下步骤进行

  1. 使用 image_size 调整图像大小。如果 image_sizeNone,则将跳过此步骤。
  2. 通过乘以 scale 来重新缩放图像,scale 可以是全局的或按通道的。如果 scaleNone,则将跳过此步骤。
  3. 通过添加 offset 来偏移图像,offset 可以是全局的或按通道的。如果 offsetNone,则将跳过此步骤。

该层将采用通道最后或通道优先格式的原始图像张量作为输入,并输出用于建模的预处理图像输入。此张量可以是批量的(秩 4),也可以是非批量的(秩 3)。

此层可以与 from_preset() 构造函数一起使用,以加载一个层,该层将为特定的预训练模型重新缩放和调整图像大小。以这种方式使用该层允许编写预处理代码,该代码在模型检查点之间切换时无需更新。

参数

  • image_size(int, int) 元组或 None。图像的输出大小,不包括通道轴。如果为 None,则不会调整输入大小。
  • scale:float、float 元组或 None。应用于输入的比例。如果 scale 是单个浮点数,则整个输入将乘以 scale。如果 scale 是一个元组,则假定它包含针对输入图像的每个通道相乘的每通道比例值。如果 scaleNone,则不应用缩放。
  • offset:float、float 元组或 None。应用于输入的偏移量。如果 offset 是单个浮点数,则整个输入将与 offset 相加。如果 offset 是一个元组,则假定它包含针对输入图像的每个通道相加的每通道偏移值。如果 offsetNone,则不应用缩放。
  • crop_to_aspect_ratio:如果为 True,则在不失真纵横比的情况下调整图像大小。当原始纵横比与目标纵横比不同时,输出图像将被裁剪,以便返回图像中与目标纵横比匹配的最大可能窗口(大小为 (height, width))。默认情况下(crop_to_aspect_ratio=False),纵横比可能无法保留。
  • interpolation:字符串,插值方法。支持 "bilinear""nearest""bicubic""lanczos3""lanczos5"。默认为 "bilinear"
  • bounding_box_format:一个字符串,指定边界框的格式,可以是 "xyxy""rel_xyxy""xywh""center_xywh""yxyx""rel_yxyx" 之一。指定边界框的格式,这些边界框将与图像一起调整为 image_size。要将边界框传递到此层,请在调用该层时传递带有键 "images""bounding_boxes" 的字典。
  • data_format:字符串,可以是 "channels_last""channels_first"。输入中维度的顺序。"channels_last" 对应于形状为 (batch, height, width, channels) 的输入,而 "channels_first" 对应于形状为 (batch, channels, height, width) 的输入。它默认为在您的 Keras 配置文件 ~/.keras/keras.json 中找到的 image_data_format 值。如果您从未设置过,则它将为 "channels_last"

示例

# Resize raw images and scale them to [0, 1].
converter = keras_hub.layers.ImageConverter(
    image_size=(128, 128),
    scale=1. / 255,
)
converter(np.random.randint(0, 256, size=(2, 512, 512, 3)))

# Resize images to the specific size needed for a PaliGemma preset.
converter = keras_hub.layers.ImageConverter.from_preset(
    "pali_gemma_3b_224"
)
converter(np.random.randint(0, 256, size=(2, 512, 512, 3)))

[source]

from_preset 方法

ImageConverter.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)
预设 参数 描述
basnet_duts 108.89M BASNet 模型,具有 34 层 ResNet 主干,在 288x288 分辨率的 DUTS 图像数据集上进行了预训练。模型训练由 Hamid Ali 执行 (https://github.com/hamidriasat/BASNet)。
clip_vit_base_patch16 149.62M 1.5 亿参数,视觉 12 层,文本 12 层,patch size 为 16 的 CLIP 模型。
clip_vit_base_patch32 151.28M 1.51 亿参数,视觉 12 层,文本 12 层,patch size 为 32 的 CLIP 模型。
clip_vit_b_32_laion2b_s34b_b79k 151.28M 1.51 亿参数,视觉 12 层,文本 12 层,patch size 为 32 的 Open CLIP 模型。
clip_vit_large_patch14 427.62M 4.28 亿参数,视觉 24 层,文本 12 层,patch size 为 14 的 CLIP 模型。
clip_vit_large_patch14_336 427.94M 4.28 亿参数,视觉 24 层,文本 12 层,patch size 为 14,image size 为 336 的 CLIP 模型。
clip_vit_h_14_laion2b_s32b_b79k 986.11M 9.86 亿参数,视觉 32 层,文本 24 层,patch size 为 14 的 Open CLIP 模型。
clip_vit_g_14_laion2b_s12b_b42k 1.37B 14 亿参数,视觉 40 层,文本 24 层,patch size 为 14 的 Open CLIP 模型。
clip_vit_bigg_14_laion2b_39b_b160k 2.54B 25 亿参数,视觉 48 层,文本 32 层,patch size 为 14 的 Open CLIP 模型。
deeplab_v3_plus_resnet50_pascalvoc 39.19M DeepLabV3+ 模型,以 ResNet50 作为图像编码器,并在增强的 Pascal VOC 数据集上进行了训练,该数据集由 Semantic Boundaries Dataset(SBD) 提供,其类别准确率为 90.01,平均 IoU 为 0.63。
densenet_121_imagenet 7.04M 121 层 DenseNet 模型,在 224x224 分辨率的 ImageNet 1k 数据集上进行了预训练。
densenet_169_imagenet 12.64M 169 层 DenseNet 模型,在 224x224 分辨率的 ImageNet 1k 数据集上进行了预训练。
densenet_201_imagenet 18.32M 201 层 DenseNet 模型,在 224x224 分辨率的 ImageNet 1k 数据集上进行了预训练。
efficientnet_lite0_ra_imagenet 4.65M EfficientNet-Lite 模型,在采用 RandAugment 配方的 ImageNet 1k 数据集上进行了微调。
efficientnet_b0_ra_imagenet 5.29M EfficientNet B0 模型,在采用 RandAugment 配方的 ImageNet 1k 数据集上进行了预训练。
efficientnet_b0_ra4_e3600_r224_imagenet 5.29M EfficientNet B0 模型,由 Ross Wightman 在 ImageNet 1k 数据集上进行了预训练。使用 timm 脚本进行训练,超参数灵感来自 MobileNet-V4 small,并与 timm 和 'ResNet Strikes Back' 中的常用超参数混合使用。
efficientnet_es_ra_imagenet 5.44M EfficientNet-EdgeTPU Small 模型,在采用 RandAugment 配方的 ImageNet 1k 数据集上进行了训练。
efficientnet_em_ra2_imagenet 6.90M EfficientNet-EdgeTPU Medium 模型,在采用 RandAugment2 配方的 ImageNet 1k 数据集上进行了训练。
efficientnet_b1_ft_imagenet 7.79M EfficientNet B1 模型,在 ImageNet 1k 数据集上进行了微调。
efficientnet_b1_ra4_e3600_r240_imagenet 7.79M EfficientNet B1 模型,由 Ross Wightman 在 ImageNet 1k 数据集上进行了预训练。使用 timm 脚本进行训练,超参数灵感来自 MobileNet-V4 small,并与 timm 和 'ResNet Strikes Back' 中的常用超参数混合使用。
efficientnet_b2_ra_imagenet 9.11M EfficientNet B2 模型,在采用 RandAugment 配方的 ImageNet 1k 数据集上进行了预训练。
efficientnet_el_ra_imagenet 10.59M EfficientNet-EdgeTPU Large 模型,在采用 RandAugment 配方的 ImageNet 1k 数据集上进行了训练。
efficientnet_b3_ra2_imagenet 12.23M EfficientNet B3 模型,在采用 RandAugment2 配方的 ImageNet 1k 数据集上进行了预训练。
efficientnet2_rw_t_ra2_imagenet 13.65M EfficientNet-v2 Tiny 模型,在采用 RandAugment2 配方的 ImageNet 1k 数据集上进行了训练。
efficientnet_b4_ra2_imagenet 19.34M EfficientNet B4 模型,在采用 RandAugment2 配方的 ImageNet 1k 数据集上进行了预训练。
efficientnet2_rw_s_ra2_imagenet 23.94M EfficientNet-v2 Small 模型,在采用 RandAugment2 配方的 ImageNet 1k 数据集上进行了训练。
efficientnet_b5_sw_imagenet 30.39M EfficientNet B5 模型,由 Ross Wightman 在 ImageNet 12k 数据集上进行了预训练。基于 Swin Transformer 训练/预训练配方,并进行了修改(与 DeiT 和 ConvNeXt 配方相关)。
efficientnet_b5_sw_ft_imagenet 30.39M EfficientNet B5 模型,由 Ross Wightman 在 ImageNet 12k 数据集上进行了预训练,并在 ImageNet-1k 上进行了微调。基于 Swin Transformer 训练/预训练配方,并进行了修改(与 DeiT 和 ConvNeXt 配方相关)。
efficientnet2_rw_m_agc_imagenet 53.24M EfficientNet-v2 Medium 模型,在采用自适应梯度裁剪的 ImageNet 1k 数据集上进行了训练。
mit_b0_ade20k_512 3.32M MiT (MixTransformer) 模型,具有 8 个 transformer block。
mit_b0_cityscapes_1024 3.32M MiT (MixTransformer) 模型,具有 8 个 transformer block。
mit_b1_ade20k_512 13.16M MiT (MixTransformer) 模型,具有 8 个 transformer block。
mit_b1_cityscapes_1024 13.16M MiT (MixTransformer) 模型,具有 8 个 transformer block。
mit_b2_ade20k_512 24.20M MiT (MixTransformer) 模型,具有 16 个 transformer block。
mit_b2_cityscapes_1024 24.20M MiT (MixTransformer) 模型,具有 16 个 transformer block。
mit_b3_ade20k_512 44.08M MiT (MixTransformer) 模型,具有 28 个 transformer block。
mit_b3_cityscapes_1024 44.08M MiT (MixTransformer) 模型,具有 28 个 transformer block。
mit_b4_ade20k_512 60.85M MiT (MixTransformer) 模型,具有 41 个 transformer block。
mit_b4_cityscapes_1024 60.85M MiT (MixTransformer) 模型,具有 41 个 transformer block。
mit_b5_ade20k_640 81.45M MiT (MixTransformer) 模型,具有 52 个 transformer block。
mit_b5_cityscapes_1024 81.45M MiT (MixTransformer) 模型,具有 52 个 transformer block。
mobilenet_v3_small_050_imagenet 278.78K 小型 MobileNet V3 模型,在 224x224 分辨率的 ImageNet 1k 数据集上进行了预训练。
pali_gemma_3b_mix_224 2.92B 图像大小 224,混合微调,文本序列长度为 256
pali_gemma_3b_224 2.92B 图像大小 224,预训练,文本序列长度为 128
pali_gemma_3b_mix_448 2.92B 图像大小 448,混合微调,文本序列长度为 512
pali_gemma_3b_448 2.92B 图像大小 448,预训练,文本序列长度为 512
pali_gemma_3b_896 2.93B 图像大小 896,预训练,文本序列长度为 512
pali_gemma2_mix_3b_224 3.03B 30 亿参数,图像大小 224,SigLIP-So400m 视觉编码器为 27 层,Gemma2 2B 语言模型为 26 层。此模型已在各种视觉语言任务和领域上进行了微调。
pali_gemma2_pt_3b_224 3.03B 30 亿参数,图像大小 224,SigLIP-So400m 视觉编码器为 27 层,Gemma2 2B 语言模型为 26 层。此模型已在数据集混合上进行了预训练。
pali_gemma_2_ft_docci_3b_448 3.03B 30 亿参数,图像大小 448,SigLIP-So400m 视觉编码器为 27 层,Gemma2 2B 语言模型为 26 层。此模型已在 DOCCI 数据集上进行了微调,以改进具有精细细节的描述。
pali_gemma2_mix_3b_448 3.03B 30 亿参数,图像大小 448,SigLIP-So400m 视觉编码器为 27 层,Gemma2 2B 语言模型为 26 层。此模型已在各种视觉语言任务和领域上进行了微调。
pali_gemma2_pt_3b_448 3.03B 30 亿参数,图像大小 448,SigLIP-So400m 视觉编码器为 27 层,Gemma2 2B 语言模型为 26 层。此模型已在数据集混合上进行了预训练。
pali_gemma2_pt_3b_896 3.04B 30 亿参数,图像大小 896,SigLIP-So400m 视觉编码器为 27 层,Gemma2 2B 语言模型为 26 层。此模型已在数据集混合上进行了预训练。
pali_gemma2_mix_10b_224 9.66B 100 亿参数,图像大小 224,SigLIP-So400m 视觉编码器为 27 层,Gemma2 9B 语言模型为 42 层。此模型已在各种视觉语言任务和领域上进行了微调。
pali_gemma2_pt_10b_224 9.66B 100 亿参数,图像大小 224,SigLIP-So400m 视觉编码器为 27 层,Gemma2 9B 语言模型为 42 层。此模型已在数据集混合上进行了预训练。
pali_gemma2_ft_docci_10b_448 9.66B 100 亿参数,SigLIP-So400m 视觉编码器为 27 层,Gemma2 9B 语言模型为 42 层。此模型已在 DOCCI 数据集上进行了微调,以改进具有精细细节的描述。
pali_gemma2_mix_10b_448 9.66B 100 亿参数,图像大小 448,SigLIP-So400m 视觉编码器为 27 层,Gemma2 9B 语言模型为 42 层。此模型已在各种视觉语言任务和领域上进行了微调。
pali_gemma2_pt_10b_448 9.66B 100 亿参数,图像大小 448,SigLIP-So400m 视觉编码器为 27 层,Gemma2 9B 语言模型为 42 层。此模型已在数据集混合上进行了预训练。
pali_gemma2_pt_10b_896 9.67B 100 亿参数,图像大小 896,SigLIP-So400m 视觉编码器为 27 层,Gemma2 9B 语言模型为 42 层。此模型已在数据集混合上进行了预训练。
pali_gemma2_mix_28b_224 27.65B 280 亿参数,图像大小 224,SigLIP-So400m 视觉编码器为 27 层,Gemma2 27B 语言模型为 46 层。此模型已在各种视觉语言任务和领域上进行了微调。
pali_gemma2_mix_28b_448 27.65B 280 亿参数,图像大小 448,SigLIP-So400m 视觉编码器为 27 层,Gemma2 27B 语言模型为 46 层。此模型已在各种视觉语言任务和领域上进行了微调。
pali_gemma2_pt_28b_224 27.65B 280 亿参数,图像大小 224,SigLIP-So400m 视觉编码器为 27 层,Gemma2 27B 语言模型为 46 层。此模型已在数据集混合上进行了预训练。
pali_gemma2_pt_28b_448 27.65B 280 亿参数,图像大小 448,SigLIP-So400m 视觉编码器为 27 层,Gemma2 27B 语言模型为 46 层。此模型已在数据集混合上进行了预训练。
pali_gemma2_pt_28b_896 27.65B 280 亿参数,图像大小 896,SigLIP-So400m 视觉编码器为 27 层,Gemma2 27B 语言模型为 46 层。此模型已在数据集混合上进行了预训练。
resnet_18_imagenet 11.19M 18 层 ResNet 模型,在 224x224 分辨率的 ImageNet 1k 数据集上进行了预训练。
resnet_vd_18_imagenet 11.72M 18 层 ResNetVD(具有技巧包的 ResNet)模型,在 224x224 分辨率的 ImageNet 1k 数据集上进行了预训练。
resnet_vd_34_imagenet 21.84M 34 层 ResNetVD(具有技巧包的 ResNet)模型,在 224x224 分辨率的 ImageNet 1k 数据集上进行了预训练。
resnet_50_imagenet 23.56M 50 层 ResNet 模型,在 224x224 分辨率的 ImageNet 1k 数据集上进行了预训练。
resnet_v2_50_imagenet 23.56M 50 层 ResNetV2 模型,在 224x224 分辨率的 ImageNet 1k 数据集上进行了预训练。
resnet_vd_50_imagenet 25.63M 50 层 ResNetVD(具有技巧包的 ResNet)模型,在 224x224 分辨率的 ImageNet 1k 数据集上进行了预训练。
resnet_vd_50_ssld_imagenet 25.63M 50 层 ResNetVD(具有技巧包的 ResNet)模型,在 224x224 分辨率的 ImageNet 1k 数据集上进行了预训练,并进行了知识蒸馏。
resnet_vd_50_ssld_v2_imagenet 25.63M 50 层 ResNetVD(具有技巧包的 ResNet)模型,在 224x224 分辨率的 ImageNet 1k 数据集上进行了预训练,并进行了知识蒸馏和 AutoAugment。
resnet_vd_50_ssld_v2_fix_imagenet 25.63M 50 层 ResNetVD(具有技巧包的 ResNet)模型,在 224x224 分辨率的 ImageNet 1k 数据集上进行了预训练,并进行了知识蒸馏、AutoAugment 以及分类头的额外微调。
resnet_101_imagenet 42.61M 101 层 ResNet 模型,在 224x224 分辨率的 ImageNet 1k 数据集上进行了预训练。
resnet_v2_101_imagenet 42.61M 101 层 ResNetV2 模型,在 224x224 分辨率的 ImageNet 1k 数据集上进行了预训练。
resnet_vd_101_imagenet 44.67M 101 层 ResNetVD(具有技巧包的 ResNet)模型,在 224x224 分辨率的 ImageNet 1k 数据集上进行了预训练。
resnet_vd_101_ssld_imagenet 44.67M 101 层 ResNetVD(具有技巧包的 ResNet)模型,在 224x224 分辨率的 ImageNet 1k 数据集上进行了预训练,并进行了知识蒸馏。
resnet_152_imagenet 58.30M 152 层 ResNet 模型,在 224x224 分辨率的 ImageNet 1k 数据集上进行了预训练。
resnet_vd_152_imagenet 60.36M 152 层 ResNetVD(具有技巧包的 ResNet)模型,在 224x224 分辨率的 ImageNet 1k 数据集上进行了预训练。
resnet_vd_200_imagenet 74.93M 200 层 ResNetVD(具有技巧包的 ResNet)模型,在 224x224 分辨率的 ImageNet 1k 数据集上进行了预训练。
retinanet_resnet50_fpn_coco 34.12M RetinaNet 模型,具有 ResNet50 主干,在 800x800 分辨率的 COCO 中进行了微调。
sam_base_sa1b 93.74M 在 SA1B 数据集上训练的基础 SAM 模型。
sam_huge_sa1b 312.34M 在 SA1B 数据集上训练的巨型 SAM 模型。
sam_large_sa1b 641.09M 在 SA1B 数据集上训练的大型 SAM 模型。
vgg_11_imagenet 9.22M 11 层 vgg 模型,在 224x224 分辨率的 ImageNet 1k 数据集上进行了预训练。
vgg_13_imagenet 9.40M 13 层 vgg 模型,在 224x224 分辨率的 ImageNet 1k 数据集上进行了预训练。
vgg_16_imagenet 14.71M 16 层 vgg 模型,在 224x224 分辨率的 ImageNet 1k 数据集上进行了预训练。
vgg_19_imagenet 20.02M 19 层 vgg 模型,在 224x224 分辨率的 ImageNet 1k 数据集上进行了预训练。
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 数据集上进行了预训练