KerasHub:預訓練模型 / API 文件 / 模型架構 / Segment Anything Model / SAMImageSegmenterPreprocessor 層

SAMImageSegmenterPreprocessor 層

[來源]

SAMImageSegmenterPreprocessor 類別

keras_hub.models.SAMImageSegmenterPreprocessor(
    image_converter=None, resize_output_mask=False, **kwargs
)

影像分割預處理層的基礎類別。

ImageSegmenterPreprocessor 包裝了 keras_hub.layers.ImageConverter,以建立用於影像分割任務的預處理層。它旨在與 keras_hub.models.ImageSegmenter 任務配對使用。

所有 ImageSegmenterPreprocessor 實例都接受三個輸入:xysample_weight

  • x:第一個輸入,應始終包含。它可以是影像或一批影像。
  • y:(可選)通常是分割遮罩,如果 resize_output_mask 設定為 True,則會將其調整大小以符合輸入影像形狀,否則將保持不變地傳遞。
  • sample_weight:(可選)將保持不變地傳遞。
  • resize_output_mask bool:如果設定為 True,則輸出遮罩將調整大小以符合輸入影像的大小。預設為 False

該層將輸出 x,如果提供了標籤,則輸出 (x, y) 元組;如果提供了標籤和樣本權重,則輸出 (x, y, sample_weight) 元組。x 將是應用所有模型預處理後的輸入影像。

所有 ImageSegmenterPreprocessor 任務都包含一個 from_preset() 建構子,可用於載入預先訓練的配置。您可以直接在此基礎類別上呼叫 from_preset() 建構子,在這種情況下,將自動實例化適用於您模型的正確類別。

範例。

preprocessor = keras_hub.models.ImageSegmenterPreprocessor.from_preset(
    "deeplabv3_resnet50",
)

# Resize a single image for the model.
x = np.ones((512, 512, 3))
x = preprocessor(x)

# Resize an image and its mask.
x, y = np.ones((512, 512, 3)), np.zeros((512, 512, 1))
x, y = preprocessor(x, y)

# Resize a batch of images and masks.
x, y = [np.ones((512, 512, 3)), np.zeros((512, 512, 3))],
       [np.ones((512, 512, 1)), np.zeros((512, 512, 1))]
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 方法

SAMImageSegmenterPreprocessor.from_preset(
    preset, config_file="preprocessor.json", **kwargs
)

從模型預設實例化 keras_hub.models.Preprocessor

預設是一個配置、權重和其他檔案資產的目錄,用於儲存和載入預先訓練的模型。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'

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

由於給定模型通常有多個預處理類別,因此應在特定的子類別(例如 keras_hub.models.BertTextClassifierPreprocessor.from_preset())上呼叫此方法。

引數

  • preset:字串。內建預設識別符、Kaggle Models 控制代碼、Hugging Face 控制代碼或本機目錄的路徑。

範例

# 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",
)
預設 參數 描述
sam_base_sa1b 93.74M 在 SA1B 資料集上訓練的基本 SAM 模型。
sam_huge_sa1b 312.34M 在 SA1B 資料集上訓練的巨大 SAM 模型。
sam_large_sa1b 641.09M 在 SA1B 資料集上訓練的大型 SAM 模型。

image_converter 屬性

keras_hub.models.SAMImageSegmenterPreprocessor.image_converter

用於預處理影像資料的影像轉換器。