SegFormer
類別keras_cv.models.SegFormer(backbone, num_classes, projection_filters=256, **kwargs)
一個實現 SegFormer 架構的 Keras 模型,用於語義分割。
參考文獻
參數
keras.Model
。模型的主幹網路,用作 SegFormer 編碼器的特徵提取器。它僅適用於專為 SegFormers 建立的 MiT 主幹模型。它應該是 keras_cv.models.backbones.backbone.Backbone
或實現 pyramid_level_inputs
屬性(鍵為「P2」、「P3」、「P4」和「P5」,值為層名稱)的 tf.keras.Model
。範例
將類別與 backbone
一起使用
import tensorflow as tf
import keras_cv
images = np.ones(shape=(1, 96, 96, 3))
labels = np.zeros(shape=(1, 96, 96, 1))
backbone = keras_cv.models.MiTBackbone.from_preset("mit_b0_imagenet")
model = keras_cv.models.segmentation.SegFormer(
num_classes=1, backbone=backbone,
)
# Evaluate model
model(images)
# Train model
model.compile(
optimizer="adam",
loss=keras.losses.BinaryCrossentropy(from_logits=False),
metrics=["accuracy"],
)
model.fit(images, labels, epochs=3)
from_preset
方法SegFormer.from_preset(
preset, num_classes, load_weights=None, input_shape=None, **kwargs
)
從預設配置和權重實例化 SegFormer 模型。
參數
None
,表示是否載入取決於預設配置是否有可用的預先訓練權重。None
。如果為 None
,則將使用預設值。範例
# Load architecture and weights from preset
model = keras_cv.models.SegFormer.from_preset(
"segformer_b0_imagenet",
)
# Load randomly initialized model from preset architecture with weights
model = keras_cv.models.SegFormer.from_preset(
"segformer_b0_imagenet",
load_weights=False,
預設名稱 | 參數 | 說明 |
---|---|---|
mit_b0 | 3.32M | 具有 8 個 Transformer 模組的 MiT(MixTransformer)模型。 |
mit_b1 | 13.16M | 具有 8 個 Transformer 模組的 MiT(MixTransformer)模型。 |
mit_b2 | 24.20M | 具有 16 個 Transformer 模組的 MiT(MixTransformer)模型。 |
mit_b3 | 44.08M | 具有 28 個 Transformer 模組的 MiT(MixTransformer)模型。 |
mit_b4 | 60.85M | 具有 41 個 Transformer 區塊的 MiT (MixTransformer) 模型。 |
mit_b5 | 81.45M | 具有 52 個 Transformer 區塊的 MiT (MixTransformer) 模型。 |
mit_b0_imagenet | 3.32M | 具有 8 個 Transformer 區塊的 MiT (MixTransformer) 模型。 在 ImageNet-1K 上進行預先訓練,並在驗證集上獲得 69% 的 Top-1 準確度。 |
segformer_b0 | 3.72M | 具有 MiTB0 骨幹的 SegFormer 模型。 |
segformer_b1 | 13.68M | 具有 MiTB1 骨幹的 SegFormer 模型。 |
segformer_b2 | 24.73M | 具有 MiTB2 骨幹的 SegFormer 模型。 |
segformer_b3 | 44.60M | 具有 MiTB3 骨幹的 SegFormer 模型。 |
segformer_b4 | 61.37M | 具有 MiTB4 骨幹的 SegFormer 模型。 |
segformer_b5 | 81.97M | 具有 MiTB5 骨幹的 SegFormer 模型。 |
segformer_b0_imagenet | 3.72M | 具有預先訓練的 MiTB0 骨幹的 SegFormer 模型。 |
SegFormerB0
類別keras_cv.models.SegFormerB0(backbone, num_classes, projection_filters=256, **kwargs)
SegFormer 模型。
對於遷移學習的使用案例,請務必閱讀遷移學習與微調指南。
參數
範例
input_data = tf.ones(shape=(8, 224, 224, 3))
# Randomly initialized backbone
backbone = keras_cv.models.MiTBackbone.from_preset("mit_b0_imagenet")
segformer = keras_cv.models.SegFormer(backbone=backbone, num_classes=19)
output = model(input_data)
SegFormerB1
類別keras_cv.models.SegFormerB1(backbone, num_classes, projection_filters=256, **kwargs)
SegFormer 模型。
對於遷移學習的使用案例,請務必閱讀遷移學習與微調指南。
參數
範例
input_data = tf.ones(shape=(8, 224, 224, 3))
# Randomly initialized backbone
backbone = keras_cv.models.MiTBackbone.from_preset("mit_b0_imagenet")
segformer = keras_cv.models.SegFormer(backbone=backbone, num_classes=19)
output = model(input_data)
SegFormerB2
類別keras_cv.models.SegFormerB2(backbone, num_classes, projection_filters=256, **kwargs)
SegFormer 模型。
對於遷移學習的使用案例,請務必閱讀遷移學習與微調指南。
參數
範例
input_data = tf.ones(shape=(8, 224, 224, 3))
# Randomly initialized backbone
backbone = keras_cv.models.MiTBackbone.from_preset("mit_b0_imagenet")
segformer = keras_cv.models.SegFormer(backbone=backbone, num_classes=19)
output = model(input_data)
SegFormerB3
類別keras_cv.models.SegFormerB3(backbone, num_classes, projection_filters=256, **kwargs)
SegFormer 模型。
對於遷移學習的使用案例,請務必閱讀遷移學習與微調指南。
參數
範例
input_data = tf.ones(shape=(8, 224, 224, 3))
# Randomly initialized backbone
backbone = keras_cv.models.MiTBackbone.from_preset("mit_b0_imagenet")
segformer = keras_cv.models.SegFormer(backbone=backbone, num_classes=19)
output = model(input_data)
SegFormerB4
類別keras_cv.models.SegFormerB4(backbone, num_classes, projection_filters=256, **kwargs)
SegFormer 模型。
對於遷移學習的使用案例,請務必閱讀遷移學習與微調指南。
參數
範例
input_data = tf.ones(shape=(8, 224, 224, 3))
# Randomly initialized backbone
backbone = keras_cv.models.MiTBackbone.from_preset("mit_b0_imagenet")
segformer = keras_cv.models.SegFormer(backbone=backbone, num_classes=19)
output = model(input_data)
SegFormerB5
類別keras_cv.models.SegFormerB5(backbone, num_classes, projection_filters=256, **kwargs)
SegFormer 模型。
對於遷移學習的使用案例,請務必閱讀遷移學習與微調指南。
參數
範例
input_data = tf.ones(shape=(8, 224, 224, 3))
# Randomly initialized backbone
backbone = keras_cv.models.MiTBackbone.from_preset("mit_b0_imagenet")
segformer = keras_cv.models.SegFormer(backbone=backbone, num_classes=19)
output = model(input_data)