Keras 3 API 文件 / KerasCV / 模型 / 骨幹網路 / CSPDarkNet 骨幹網路

CSPDarkNet 骨幹網路

[原始碼]

CSPDarkNetBackbone 類別

keras_cv.models.CSPDarkNetBackbone(
    stackwise_channels,
    stackwise_depth,
    include_rescaling,
    use_depthwise=False,
    input_shape=(None, None, 3),
    input_tensor=None,
    **kwargs
)

此類別表示 CSPDarkNet 架構。

參考

對於遷移學習的用例,請務必閱讀遷移學習和微調指南

引數

  • stackwise_channels:一個整數列表,表示模型中每個 Darknet 層級的通道數。
  • stackwise_depth:一個整數列表,表示模型中每個 Darknet 層級的深度。
  • include_rescaling:布林值,是否要重新調整輸入的比例。如果設定為 True,輸入將會通過 Rescaling(1/255.0) 層。
  • use_depthwise:布林值,是否應該使用 DarknetConvBlockDepthwise 而不是 DarknetConvBlock,預設為 False。
  • input_shape:可選的形狀元組,預設為 (None, None, 3)。
  • input_tensor:可選的 Keras 張量(即 keras.layers.Input() 的輸出),用作模型的圖像輸入。

回傳值

一個 keras.Model 實例。

範例

input_data = tf.ones(shape=(8, 224, 224, 3))

# Pretrained backbone
model = keras_cv.models.CSPDarkNetBackbone.from_preset(
    "csp_darknet_tiny_imagenet"
)
output = model(input_data)

# Randomly initialized backbone with a custom config
model = keras_cv.models.CSPDarkNetBackbone(
    stackwise_channels=[128, 256, 512, 1024],
    stackwise_depth=[3, 9, 9, 3],
    include_rescaling=False,
)
output = model(input_data)

[原始碼]

from_preset 方法

CSPDarkNetBackbone.from_preset()

從預設配置和權重實例化 CSPDarkNetBackbone 模型。

引數

  • preset:字串。必須是 "csp_darknet_tiny"、"csp_darknet_s"、"csp_darknet_m"、"csp_darknet_l"、"csp_darknet_xl"、"csp_darknet_tiny_imagenet"、"csp_darknet_l_imagenet" 之一。如果要尋找具有預先訓練權重的預設配置,請選擇 "csp_darknet_tiny_imagenet"、"csp_darknet_l_imagenet" 之一。
  • load_weights:是否要將預先訓練的權重載入模型。預設為 None,這將遵循預設配置是否有可用的預先訓練權重。

範例

# Load architecture and weights from preset
model = keras_cv.models.CSPDarkNetBackbone.from_preset(
    "csp_darknet_tiny_imagenet",
)

# Load randomly initialized model from preset architecture with weights
model = keras_cv.models.CSPDarkNetBackbone.from_preset(
    "csp_darknet_tiny_imagenet",
    load_weights=False,
預設名稱 參數 描述
csp_darknet_tiny 2.38M 具有 [48, 96, 192, 384] 個通道和 [1, 3, 3, 1] 個深度的 CSPDarkNet 模型,其中批次正規化和 SiLU 激活函數應用於卷積層之後。
csp_darknet_s 4.22M CSPDarkNet 模型,具有 [64, 128, 256, 512] 個通道和 [1, 3, 3, 1] 的深度,在卷積層之後應用批次標準化和 SiLU 激活函數。
csp_darknet_m 12.37M CSPDarkNet 模型,具有 [96, 192, 384, 768] 個通道和 [2, 6, 6, 2] 的深度,在卷積層之後應用批次標準化和 SiLU 激活函數。
csp_darknet_l 27.11M CSPDarkNet 模型,具有 [128, 256, 512, 1024] 個通道和 [3, 9, 9, 3] 的深度,在卷積層之後應用批次標準化和 SiLU 激活函數。
csp_darknet_xl 56.84M CSPDarkNet 模型,具有 [170, 340, 680, 1360] 個通道和 [4, 12, 12, 4] 的深度,在卷積層之後應用批次標準化和 SiLU 激活函數。
csp_darknet_tiny_imagenet 2.38M CSPDarkNet 模型,具有 [48, 96, 192, 384] 個通道和 [1, 3, 3, 1] 的深度,在卷積層之後應用批次標準化和 SiLU 激活函數。在 ImageNet 2012 分類任務上進行訓練。
csp_darknet_l_imagenet 27.11M CSPDarkNet 模型,具有 [128, 256, 512, 1024] 個通道和 [3, 9, 9, 3] 的深度,在卷積層之後應用批次標準化和 SiLU 激活函數。在 ImageNet 2012 分類任務上進行訓練。

[原始碼]

CSPDarkNetTinyBackbone 類別

keras_cv.models.CSPDarkNetTinyBackbone(
    stackwise_channels,
    stackwise_depth,
    include_rescaling,
    use_depthwise=False,
    input_shape=(None, None, 3),
    input_tensor=None,
    **kwargs
)

CSPDarkNetBackbone 模型,具有 [48, 96, 192, 384] 個通道和 [1, 3, 3, 1] 的深度。

參考

對於遷移學習的用例,請務必閱讀遷移學習和微調指南

引數

  • include_rescaling:布林值,是否重新縮放輸入。如果設定為 True,則輸入將通過 Rescaling(1/255.0) 層。
  • input_tensor:可選的 Keras 張量(即 layers.Input() 的輸出),用作模型的圖像輸入。
  • input_shape:可選的形狀元組,預設為 (None, None, 3)。

範例

input_data = tf.ones(shape=(8, 224, 224, 3))

# Randomly initialized backbone
model = CSPDarkNetTinyBackbone()
output = model(input_data)

[原始碼]

CSPDarkNetSBackbone 類別

keras_cv.models.CSPDarkNetSBackbone(
    stackwise_channels,
    stackwise_depth,
    include_rescaling,
    use_depthwise=False,
    input_shape=(None, None, 3),
    input_tensor=None,
    **kwargs
)

CSPDarkNetBackbone 模型,具有 [64, 128, 256, 512] 個通道和 [1, 3, 3, 1] 的深度。

參考

對於遷移學習的用例,請務必閱讀遷移學習和微調指南

引數

  • include_rescaling:布林值,是否重新縮放輸入。如果設定為 True,則輸入將通過 Rescaling(1/255.0) 層。
  • input_tensor:可選的 Keras 張量(即 layers.Input() 的輸出),用作模型的圖像輸入。
  • input_shape:可選的形狀元組,預設為 (None, None, 3)。

範例

input_data = tf.ones(shape=(8, 224, 224, 3))

# Randomly initialized backbone
model = CSPDarkNetSBackbone()
output = model(input_data)

[原始碼]

CSPDarkNetMBackbone 類別

keras_cv.models.CSPDarkNetMBackbone(
    stackwise_channels,
    stackwise_depth,
    include_rescaling,
    use_depthwise=False,
    input_shape=(None, None, 3),
    input_tensor=None,
    **kwargs
)

CSPDarkNetBackbone 模型,具有 [96, 192, 384, 768] 個通道和 [2, 6, 6, 2] 的深度。

參考

對於遷移學習的用例,請務必閱讀遷移學習和微調指南

引數

  • include_rescaling:布林值,是否重新縮放輸入。如果設定為 True,則輸入將通過 Rescaling(1/255.0) 層。
  • input_tensor:可選的 Keras 張量(即 layers.Input() 的輸出),用作模型的圖像輸入。
  • input_shape:可選的形狀元組,預設為 (None, None, 3)。

範例

input_data = tf.ones(shape=(8, 224, 224, 3))

# Randomly initialized backbone
model = CSPDarkNetMBackbone()
output = model(input_data)

[原始碼]

CSPDarkNetLBackbone 類別

keras_cv.models.CSPDarkNetLBackbone(
    stackwise_channels,
    stackwise_depth,
    include_rescaling,
    use_depthwise=False,
    input_shape=(None, None, 3),
    input_tensor=None,
    **kwargs
)

CSPDarkNetBackbone 模型,具有 [128, 256, 512, 1024] 個通道和 [3, 9, 9, 3] 的深度。

參考

對於遷移學習的用例,請務必閱讀遷移學習和微調指南

引數

  • include_rescaling:布林值,是否重新縮放輸入。如果設定為 True,則輸入將通過 Rescaling(1/255.0) 層。
  • input_tensor:可選的 Keras 張量(即 layers.Input() 的輸出),用作模型的圖像輸入。
  • input_shape:可選的形狀元組,預設為 (None, None, 3)。

範例

input_data = tf.ones(shape=(8, 224, 224, 3))

# Randomly initialized backbone
model = CSPDarkNetLBackbone()
output = model(input_data)

[原始碼]

CSPDarkNetXLBackbone 類別

keras_cv.models.CSPDarkNetXLBackbone(
    stackwise_channels,
    stackwise_depth,
    include_rescaling,
    use_depthwise=False,
    input_shape=(None, None, 3),
    input_tensor=None,
    **kwargs
)

CSPDarkNetBackbone 模型,具有 [170, 340, 680, 1360] 個通道和 [4, 12, 12, 4] 的深度。

參考

對於遷移學習的用例,請務必閱讀遷移學習和微調指南

引數

  • include_rescaling:布林值,是否重新縮放輸入。如果設定為 True,則輸入將通過 Rescaling(1/255.0) 層。
  • input_tensor:可選的 Keras 張量(即 layers.Input() 的輸出),用作模型的圖像輸入。
  • input_shape:可選的形狀元組,預設為 (None, None, 3)。

範例

input_data = tf.ones(shape=(8, 224, 224, 3))

# Randomly initialized backbone
model = CSPDarkNetXLBackbone()
output = model(input_data)