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

ResNetV2 骨幹網路

[來源]

ResNetV2Backbone 類別

keras_cv.models.ResNetV2Backbone(
    stackwise_filters,
    stackwise_blocks,
    stackwise_strides,
    include_rescaling,
    stackwise_dilations=None,
    input_shape=(None, None, 3),
    input_tensor=None,
    block_type="block",
    **kwargs
)

實例化 ResNetV2 架構。

參考

Resnet 和 ResNetV2 的區別在於它們各自構建模組的結構。在 ResNetV2 中,批次正規化和 ReLU 激活在卷積層之前,而 ResNetV1 中的批次正規化和 ReLU 激活在卷積層之後。

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

參數

  • stackwise_filters:整數列表,模型中每個堆疊的濾波器數量。
  • stackwise_blocks:整數列表,模型中每個堆疊的區塊數量。
  • stackwise_strides:整數列表,模型中每個堆疊的步幅。
  • include_rescaling:布林值,是否重新縮放輸入。如果設定為 True,輸入將會通過 Rescaling(1/255.0) 層。
  • stackwise_dilations:整數列表,模型中每個堆疊的膨脹率。如果為 None(預設值),則不會使用膨脹率。
  • input_shape:可選的形狀元組,預設為 (None, None, 3)。
  • input_tensor:可選的 Keras 張量(例如 layers.Input() 的輸出),用作模型的影像輸入。
  • block_type:字串,「basic_block」或「block」其中之一。要堆疊的區塊類型。對於 ResNet18 和 ResNet34 等較小的模型,請使用「basic_block」。

範例

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

# Pretrained backbone
model = keras_cv.models.ResNetV2Backbone.from_preset("resnet50_v2_imagenet")
output = model(input_data)

# Randomly initialized backbone with a custom config
model = ResNetV2Backbone(
    stackwise_filters=[64, 128, 256, 512],
    stackwise_blocks=[2, 2, 2, 2],
    stackwise_strides=[1, 2, 2, 2],
    include_rescaling=False,
)
output = model(input_data)

[來源]

from_preset 方法

ResNetV2Backbone.from_preset()

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

參數

  • preset:字串。必須是「resnet18_v2」、「resnet34_v2」、「resnet50_v2」、「resnet101_v2」、「resnet152_v2」、「resnet50_v2_imagenet」其中之一。如果要尋找具有預訓練權重的預設模型,請選擇「resnet50_v2_imagenet」。
  • load_weights:是否將預先訓練好的權重載入模型。預設為 None,這取決於預設設置是否有可用的預先訓練權重。

範例

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

# Load randomly initialized model from preset architecture with weights
model = keras_cv.models.ResNetV2Backbone.from_preset(
    "resnet50_v2_imagenet",
    load_weights=False,
預設名稱 參數 描述
resnet18_v2 11.18M 具有 18 個層的 ResNet 模型,其中批次正規化和 ReLU 激活在卷積層之前(v2 風格)。
resnet34_v2 21.30M 具有 34 個層的 ResNet 模型,其中批次正規化和 ReLU 激活在卷積層之前(v2 風格)。
resnet50_v2 23.56M 具有 50 個層的 ResNet 模型,其中批次正規化和 ReLU 激活在卷積層之前(v2 風格)。
resnet101_v2 42.63M 具有 101 個層的 ResNet 模型,其中批次正規化和 ReLU 激活在卷積層之前(v2 風格)。
resnet152_v2 58.33M 具有 152 個層的 ResNet 模型,其中批次正規化和 ReLU 激活在卷積層之前(v2 風格)。
resnet50_v2_imagenet 23.56M 具有 50 個層的 ResNet 模型,其中批次正規化和 ReLU 激活在卷積層之前(v2 風格)。在 Imagenet 2012 分類任務上進行訓練。

[來源]

ResNet18V2Backbone 類別

keras_cv.models.ResNet18V2Backbone(
    stackwise_filters,
    stackwise_blocks,
    stackwise_strides,
    include_rescaling,
    stackwise_dilations=None,
    input_shape=(None, None, 3),
    input_tensor=None,
    block_type="block",
    **kwargs
)

具有 18 個層的 ResNetV2Backbone 模型。

參考

ResNet 和 ResNetV2 的區別在於它們各自構建塊的結構。在 ResNetV2 中,批次正規化和 ReLU 激活在卷積層之前,而 ResNetV1 中的批次正規化和 ReLU 激活在卷積層之後應用。

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

參數

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

範例

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

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

[來源]

ResNet34V2Backbone 類別

keras_cv.models.ResNet34V2Backbone(
    stackwise_filters,
    stackwise_blocks,
    stackwise_strides,
    include_rescaling,
    stackwise_dilations=None,
    input_shape=(None, None, 3),
    input_tensor=None,
    block_type="block",
    **kwargs
)

具有 34 個層的 ResNetV2Backbone 模型。

參考

ResNet 和 ResNetV2 的區別在於它們各自構建塊的結構。在 ResNetV2 中,批次正規化和 ReLU 激活在卷積層之前,而 ResNetV1 中的批次正規化和 ReLU 激活在卷積層之後應用。

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

參數

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

範例

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

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

[來源]

ResNet50V2Backbone 類別

keras_cv.models.ResNet50V2Backbone(
    stackwise_filters,
    stackwise_blocks,
    stackwise_strides,
    include_rescaling,
    stackwise_dilations=None,
    input_shape=(None, None, 3),
    input_tensor=None,
    block_type="block",
    **kwargs
)

具有 50 個層的 ResNetV2Backbone 模型。

參考

ResNet 和 ResNetV2 的區別在於它們各自構建塊的結構。在 ResNetV2 中,批次正規化和 ReLU 激活在卷積層之前,而 ResNetV1 中的批次正規化和 ReLU 激活在卷積層之後應用。

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

參數

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

範例

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

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

[來源]

ResNet101V2Backbone 類別

keras_cv.models.ResNet101V2Backbone(
    stackwise_filters,
    stackwise_blocks,
    stackwise_strides,
    include_rescaling,
    stackwise_dilations=None,
    input_shape=(None, None, 3),
    input_tensor=None,
    block_type="block",
    **kwargs
)

具有 101 個層的 ResNetV2Backbone 模型。

參考

ResNet 和 ResNetV2 的區別在於它們各自構建塊的結構。在 ResNetV2 中,批次正規化和 ReLU 激活在卷積層之前,而 ResNetV1 中的批次正規化和 ReLU 激活在卷積層之後應用。

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

參數

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

範例

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

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

[來源]

ResNet152V2Backbone 類別

keras_cv.models.ResNet152V2Backbone(
    stackwise_filters,
    stackwise_blocks,
    stackwise_strides,
    include_rescaling,
    stackwise_dilations=None,
    input_shape=(None, None, 3),
    input_tensor=None,
    block_type="block",
    **kwargs
)

具有 152 個層的 ResNetV2Backbone 模型。

參考

ResNet 和 ResNetV2 的區別在於它們各自構建塊的結構。在 ResNetV2 中,批次正規化和 ReLU 激活在卷積層之前,而 ResNetV1 中的批次正規化和 ReLU 激活在卷積層之後應用。

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

參數

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

範例

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

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