KerasHub:預訓練模型 / API 文件 / 模型架構 / DeepLabV3 / DeepLabV3ImageSegmenter 模型

DeepLabV3ImageSegmenter 模型

[原始碼]

DeepLabV3ImageSegmenter 類別

keras_hub.models.DeepLabV3ImageSegmenter(
    backbone, num_classes, activation=None, preprocessor=None, **kwargs
)

DeepLabV3、DeeplabV3 和 DeeplabV3Plus 分割任務。

參數

  • backbone:一個 keras_hub.models.DeepLabV3 實例。
  • num_classes:整數。偵測模型的類別數量。請注意,num_classes 包含背景類別,且資料中的類別應以 [0, num_classes] 範圍內的整數表示。
  • activation:字串或可呼叫物件。要在 Dense 層上使用的激活函數。設定 activation=None 以傳回輸出 logits。預設為 None
  • preprocessor:一個 keras_hub.models.DeepLabV3ImageSegmenterPreprocessorNone。如果為 None,此模型將不會應用預處理,並且輸入應在呼叫模型之前進行預處理。

範例

載入具有所有 21 個類別、預訓練分割頭的 DeepLabV3 預設。

images = np.ones(shape=(1, 96, 96, 3))
labels = np.zeros(shape=(1, 96, 96, 2))
segmenter = keras_hub.models.DeepLabV3ImageSegmenter.from_preset(
    "deeplab_v3_plus_resnet50_pascalvoc",
)
segmenter.predict(images)

指定 num_classes 以載入隨機初始化的分割頭。

segmenter = keras_hub.models.DeepLabV3ImageSegmenter.from_preset(
    "deeplab_v3_plus_resnet50_pascalvoc",
    num_classes=2,
)
segmenter.preprocessor.image_size = (96, 96)
segmenter.fit(images, labels, epochs=3)
segmenter.predict(images)  # Trained 2 class segmentation.

載入 DeepLabv3+ 預設,它是 DeepLabV3 的擴展,透過添加一個簡單但有效的解碼器模組來細化分割結果,尤其是在物件邊界周圍。

segmenter = keras_hub.models.DeepLabV3ImageSegmenter.from_preset(
    "deeplabv3_plus_resnet50_pascalvoc",
)
segmenter.predict(images)

[原始碼]

from_preset 方法

DeepLabV3ImageSegmenter.from_preset(preset, load_weights=True, **kwargs)

從模型預設實例化一個 keras_hub.models.Task

預設是一個包含配置、權重和其他檔案資產的目錄,用於儲存和載入預訓練模型。preset 可以作為以下其中之一傳遞

  1. 一個內建的預設識別符,例如 'bert_base_en'
  2. 一個 Kaggle Models 句柄,例如 'kaggle://user/bert/keras/bert_base_en'
  3. 一個 Hugging Face 句柄,例如 'hf://user/bert_base_en'
  4. 一個指向本機預設目錄的路徑,例如 './bert_base_en'

對於任何 Task 子類別,您可以執行 cls.presets.keys() 以列出類別上所有可用的內建預設。

此建構子可以透過兩種方式之一呼叫。可以從任務特定的基底類別(例如 keras_hub.models.CausalLM.from_preset()),或從模型類別(例如 keras_hub.models.BertTextClassifier.from_preset())呼叫。如果從基底類別呼叫,則傳回物件的子類別將從預設目錄中的配置推斷。

參數

  • preset:字串。一個內建的預設識別符、Kaggle Models 句柄、Hugging Face 句柄或指向本機目錄的路徑。
  • load_weights:布林值。如果為 True,則儲存的權重將載入到模型架構中。如果為 False,則所有權重將隨機初始化。

範例

# Load a Gemma generative task.
causal_lm = keras_hub.models.CausalLM.from_preset(
    "gemma_2b_en",
)

# Load a Bert classification task.
model = keras_hub.models.TextClassifier.from_preset(
    "bert_base_en",
    num_classes=2,
)
預設 參數 描述
deeplab_v3_plus_resnet50_pascalvoc 39.19M DeepLabV3+ 模型,使用 ResNet50 作為圖像編碼器,並在 Semantic Boundaries Dataset (SBD) 增強的 Pascal VOC 資料集上進行訓練,其類別準確度為 90.01,平均 IoU 為 0.63。

backbone 屬性

keras_hub.models.DeepLabV3ImageSegmenter.backbone

一個具有核心架構的 keras_hub.models.Backbone 模型。


preprocessor 屬性

keras_hub.models.DeepLabV3ImageSegmenter.preprocessor

一個用於預處理輸入的 keras_hub.models.Preprocessor 層。