ResNetImageClassifierPreprocessor
類別keras_hub.models.ResNetImageClassifierPreprocessor(image_converter=None, **kwargs)
影像分類預處理層的基礎類別。
ImageClassifierPreprocessor
任務包裝了 keras_hub.layers.ImageConverter
,以建立用於影像分類任務的預處理層。它旨在與 keras_hub.models.ImageClassifier
任務配對使用。
所有 ImageClassifierPreprocessor
接受三個輸入,x
、y
和 sample_weight
。x
,第一個輸入,應始終包含。它可以是單張影像或一批影像。請參閱以下範例。y
和 sample_weight
是可選輸入,將會原封不動地傳遞。通常,y
將會是分類標籤,而 sample_weight
將不會被提供。
此層將輸出 x
,如果提供了標籤,則輸出 (x, y)
元組,如果提供了標籤和樣本權重,則輸出 (x, y, sample_weight)
元組。x
將會是應用所有模型預處理後的輸入影像。
所有 ImageClassifierPreprocessor
任務都包含一個 from_preset()
建構子,可以用來載入預訓練的配置和詞彙表。您可以直接在這個基礎類別上調用 from_preset()
建構子,在這種情況下,將會自動實例化適合您模型的正確類別。
範例。
preprocessor = keras_hub.models.ImageClassifierPreprocessor.from_preset(
"resnet_50",
)
# Resize a single image for resnet 50.
x = np.random.randint(0, 256, (512, 512, 3))
x = preprocessor(x)
# Resize a labeled image.
x, y = np.random.randint(0, 256, (512, 512, 3)), 1
x, y = preprocessor(x, y)
# Resize a batch of labeled images.
x, y = [
np.random.randint(0, 256, (512, 512, 3)),
np.zeros((512, 512, 3))
], [1, 0]
x, y = preprocessor(x, y)
# Use a [`tf.data.Dataset`](https://tensorflow.dev.org.tw/api_docs/python/tf/data/Dataset).
ds = tf.data.Dataset.from_tensor_slices((x, y)).batch(2)
ds = ds.map(preprocessor, num_parallel_calls=tf.data.AUTOTUNE)
from_preset
方法ResNetImageClassifierPreprocessor.from_preset(
preset, config_file="preprocessor.json", **kwargs
)
從模型預設實例化一個 keras_hub.models.Preprocessor
。
預設是一個包含配置、權重和其他檔案資產的目錄,用於儲存和載入預訓練模型。preset
可以作為以下其中一種傳遞
'bert_base_en'
'kaggle://user/bert/keras/bert_base_en'
'hf://user/bert_base_en'
'./bert_base_en'
對於任何 Preprocessor
子類別,您可以執行 cls.presets.keys()
以列出類別上所有可用的內建預設。
由於給定模型通常有多個預處理類別,因此此方法應在特定的子類別上調用,例如 keras_hub.models.BertTextClassifierPreprocessor.from_preset()
。
參數
範例
# Load a preprocessor for Gemma generation.
preprocessor = keras_hub.models.CausalLMPreprocessor.from_preset(
"gemma_2b_en",
)
# Load a preprocessor for Bert classification.
preprocessor = keras_hub.models.TextClassifierPreprocessor.from_preset(
"bert_base_en",
)
預設 | 參數 | 描述 |
---|---|---|
resnet_18_imagenet | 11.19M | 18 層 ResNet 模型,在 ImageNet 1k 資料集上以 224x224 解析度進行預訓練。 |
resnet_vd_18_imagenet | 11.72M | 18 層 ResNetVD(具有技巧包的 ResNet)模型,在 ImageNet 1k 資料集上以 224x224 解析度進行預訓練。 |
resnet_vd_34_imagenet | 21.84M | 34 層 ResNetVD(具有技巧包的 ResNet)模型,在 ImageNet 1k 資料集上以 224x224 解析度進行預訓練。 |
resnet_50_imagenet | 23.56M | 50 層 ResNet 模型,在 ImageNet 1k 資料集上以 224x224 解析度進行預訓練。 |
resnet_v2_50_imagenet | 23.56M | 50 層 ResNetV2 模型,在 ImageNet 1k 資料集上以 224x224 解析度進行預訓練。 |
resnet_vd_50_imagenet | 25.63M | 50 層 ResNetVD(具有技巧包的 ResNet)模型,在 ImageNet 1k 資料集上以 224x224 解析度進行預訓練。 |
resnet_vd_50_ssld_imagenet | 25.63M | 50 層 ResNetVD(具有技巧包的 ResNet)模型,在 ImageNet 1k 資料集上以 224x224 解析度進行預訓練,並採用知識蒸餾。 |
resnet_vd_50_ssld_v2_imagenet | 25.63M | 50 層 ResNetVD(具有技巧包的 ResNet)模型,在 ImageNet 1k 資料集上以 224x224 解析度進行預訓練,並採用知識蒸餾和 AutoAugment。 |
resnet_vd_50_ssld_v2_fix_imagenet | 25.63M | 50 層 ResNetVD(具有技巧包的 ResNet)模型,在 ImageNet 1k 資料集上以 224x224 解析度進行預訓練,並採用知識蒸餾、AutoAugment 以及分類頭的額外微調。 |
resnet_101_imagenet | 42.61M | 101 層 ResNet 模型,在 ImageNet 1k 資料集上以 224x224 解析度進行預訓練。 |
resnet_v2_101_imagenet | 42.61M | 101 層 ResNetV2 模型,在 ImageNet 1k 資料集上以 224x224 解析度進行預訓練。 |
resnet_vd_101_imagenet | 44.67M | 101 層 ResNetVD(具有技巧包的 ResNet)模型,在 ImageNet 1k 資料集上以 224x224 解析度進行預訓練。 |
resnet_vd_101_ssld_imagenet | 44.67M | 101 層 ResNetVD(具有技巧包的 ResNet)模型,在 ImageNet 1k 資料集上以 224x224 解析度進行預訓練,並採用知識蒸餾。 |
resnet_152_imagenet | 58.30M | 152 層 ResNet 模型,在 ImageNet 1k 資料集上以 224x224 解析度進行預訓練。 |
resnet_vd_152_imagenet | 60.36M | 152 層 ResNetVD(具有技巧包的 ResNet)模型,在 ImageNet 1k 資料集上以 224x224 解析度進行預訓練。 |
resnet_vd_200_imagenet | 74.93M | 200 層 ResNetVD(具有技巧包的 ResNet)模型,在 ImageNet 1k 資料集上以 224x224 解析度進行預訓練。 |
image_converter
屬性keras_hub.models.ResNetImageClassifierPreprocessor.image_converter
用於預處理影像資料的影像轉換器。