MobileNet
函數keras.applications.MobileNet(
input_shape=None,
alpha=1.0,
depth_multiplier=1,
dropout=0.001,
include_top=True,
weights="imagenet",
input_tensor=None,
pooling=None,
classes=1000,
classifier_activation="softmax",
name=None,
)
實例化 MobileNet 架構。
參考文獻
此函數會回傳一個 Keras 圖像分類模型,可選擇載入在 ImageNet 上預先訓練的權重。
關於圖像分類的使用案例,請參閱 此頁面以取得詳細範例。
關於遷移學習的使用案例,請務必閱讀遷移學習和微調指南。
注意:每個 Keras 應用程式都預期特定類型的輸入預處理。對於 MobileNet,請在將輸入傳遞至模型之前,對您的輸入呼叫 keras.applications.mobilenet.preprocess_input
。mobilenet.preprocess_input
會將輸入像素縮放至 -1 和 1 之間。
參數
include_top
為 False
時才需要指定 (否則輸入形狀必須為 (224, 224, 3)
(使用 "channels_last"
資料格式) 或 (3, 224, 224)
(使用 "channels_first"
資料格式)。它應該恰好有 3 個輸入通道,並且寬度和高度不應小於 32。例如,(200, 200, 3)
會是一個有效的值。預設值為 None
。如果提供 input_tensor
,則會忽略 input_shape
。alpha < 1.0
,則按比例減少每層中的篩選器數量。alpha > 1.0
,則按比例增加每層中的篩選器數量。alpha == 1
,則在每層中使用論文中的預設篩選器數量。預設值為 1.0
。1.0
。0.001
。True
。None
(隨機初始化)、"imagenet"
(在 ImageNet 上預先訓練) 或要載入的權重檔案路徑之一。預設值為 "imagenet"
。layers.Input()
的輸出),用作模型的影像輸入。input_tensor
可用於在多個不同的網路之間共用輸入。預設值為 None
。include_top
為 False
時,用於特徵提取的可選池化模式。None
(預設值) 表示模型的輸出將是最後一個卷積區塊的 4D 張量輸出。avg
表示全域平均池化將會套用至最後一個卷積區塊的輸出,因此模型的輸出將會是 2D 張量。max
表示將會套用全域最大池化。include_top
為 True
且未指定任何 weights
引數時才需要指定。預設值為 1000
。str
或可呼叫物件。「頂層」上要使用的啟用函數。除非 include_top=True
,否則會忽略。設定 classifier_activation=None
以回傳「頂層」的 logits。載入預先訓練的權重時,classifier_activation
只能是 None
或 "softmax"
。回傳
一個模型實例。
MobileNetV2
函數keras.applications.MobileNetV2(
input_shape=None,
alpha=1.0,
include_top=True,
weights="imagenet",
input_tensor=None,
pooling=None,
classes=1000,
classifier_activation="softmax",
name=None,
)
實例化 MobileNetV2 架構。
MobileNetV2 與原始 MobileNet 非常相似,只是它使用具有瓶頸特徵的反向殘差區塊。它具有比原始 MobileNet 低得多的參數計數。MobileNets 支援大於 32 x 32 的任何輸入大小,較大的影像大小可提供更好的效能。
參考文獻
此函數會回傳一個 Keras 圖像分類模型,可選擇載入在 ImageNet 上預先訓練的權重。
關於圖像分類的使用案例,請參閱 此頁面以取得詳細範例。
關於遷移學習的使用案例,請務必閱讀遷移學習和微調指南。
注意:每個 Keras 應用程式都預期特定類型的輸入預處理。對於 MobileNetV2,請在將輸入傳遞至模型之前,對您的輸入呼叫 keras.applications.mobilenet_v2.preprocess_input
。mobilenet_v2.preprocess_input
會將輸入像素縮放至 -1 和 1 之間。
參數
include_top
為 False
時才需要指定 (否則輸入形狀必須為 (224, 224, 3)
(使用 "channels_last"
資料格式) 或 (3, 224, 224)
(使用 "channels_first"
資料格式)。它應該恰好有 3 個輸入通道,並且寬度和高度不應小於 32。例如,(200, 200, 3)
會是一個有效的值。預設值為 None
。如果提供 input_tensor
,則會忽略 input_shape
。alpha < 1.0
,則按比例減少每層中的篩選器數量。alpha > 1.0
,則按比例增加每層中的篩選器數量。alpha == 1
,則在每層中使用論文中的預設篩選器數量。預設值為 1.0
。True
。None
(隨機初始化)、"imagenet"
(在 ImageNet 上預先訓練) 或要載入的權重檔案路徑之一。預設值為 "imagenet"
。layers.Input()
的輸出),用作模型的影像輸入。input_tensor
可用於在多個不同的網路之間共用輸入。預設值為 None
。include_top
為 False
時,用於特徵提取的可選池化模式。None
(預設值) 表示模型的輸出將是最後一個卷積區塊的 4D 張量輸出。avg
表示全域平均池化將會套用至最後一個卷積區塊的輸出,因此模型的輸出將會是 2D 張量。max
表示將會套用全域最大池化。include_top
為 True
且未指定任何 weights
引數時才需要指定。預設值為 1000
。str
或可呼叫物件。「頂層」上要使用的啟用函數。除非 include_top=True
,否則會忽略。設定 classifier_activation=None
以回傳「頂層」的 logits。載入預先訓練的權重時,classifier_activation
只能是 None
或 "softmax"
。回傳
一個模型實例。
MobileNetV3Small
函數keras.applications.MobileNetV3Small(
input_shape=None,
alpha=1.0,
minimalistic=False,
include_top=True,
weights="imagenet",
input_tensor=None,
classes=1000,
pooling=None,
dropout_rate=0.2,
classifier_activation="softmax",
include_preprocessing=True,
name="MobileNetV3Small",
)
實例化 MobileNetV3Small 架構。
參考文獻
MAC 代表乘法累加 (Multiply Adds)
分類檢查點 | MAC(M) | 參數 (M) | 前 1 名準確度 | Pixel1 CPU (毫秒) |
---|---|---|---|---|
mobilenet_v3_large_1.0_224 | 217 | 5.4 | 75.6 | 51.2 |
mobilenet_v3_large_0.75_224 | 155 | 4.0 | 73.3 | 39.8 |
mobilenet_v3_large_minimalistic_1.0_224 | 209 | 3.9 | 72.3 | 44.1 |
mobilenet_v3_small_1.0_224 | 66 | 2.9 | 68.1 | 15.8 |
mobilenet_v3_small_0.75_224 | 44 | 2.4 | 65.4 | 12.8 |
mobilenet_v3_small_minimalistic_1.0_224 | 65 | 2.0 | 61.9 | 12.2 |
關於圖像分類的使用案例,請參閱 此頁面以取得詳細範例。
關於遷移學習的使用案例,請務必閱讀遷移學習和微調指南。
注意:每個 Keras 應用程式都預期特定類型的輸入預處理。對於 MobileNetV3,預設情況下輸入預處理會包含為模型的一部分 (作為 Rescaling
層),因此 keras.applications.mobilenet_v3.preprocess_input
實際上是直通函數。在此使用案例中,MobileNetV3 模型預期它們的輸入是像素值在 [0-255]
範圍內的浮點張量。同時,可以透過將 include_preprocessing
引數設定為 False
來停用作為模型一部分的預處理 (即 Rescaling
層)。停用預處理時,MobileNetV3 模型預期它們的輸入是像素值在 [-1, 1]
範圍內的浮點張量。
參數
(224, 224, 3)
的模型,則需要指定。它應該恰好有 3 個輸入通道。如果您想要從 input_tensor 推斷 input_shape,您也可以省略此選項。如果您選擇同時包含 input_tensor 和 input_shape,則如果它們符合,將會使用 input_shape,如果形狀不符合,則會擲回錯誤。例如,(160, 160, 3)
會是一個有效的值。alpha < 1.0
,則按比例減少每層中的篩選器數量。alpha > 1.0
,則按比例增加每層中的篩選器數量。alpha == 1
,則在每層中使用論文中的預設篩選器數量。True
。None
(隨機初始化)、"imagenet"
(在 ImageNet 上預先訓練) 或要載入的權重檔案路徑之一。layers.Input()
的輸出),用作模型的影像輸入。include_top
為 False
時,用於特徵提取的可選池化模式。None
表示模型的輸出將是最後一個卷積區塊的 4D 張量輸出。avg
表示全域平均池化將會套用至最後一個卷積區塊的輸出,因此模型的輸出將會是 2D 張量。max
表示將會套用全域最大池化。include_top
為 True
且未指定任何 weights
引數時才需要指定。str
或可呼叫物件。「頂層」上要使用的啟用函數。除非 include_top=True
,否則會忽略。設定 classifier_activation=None
以回傳「頂層」的 logits。載入預先訓練的權重時,classifier_activation
只能是 None
或 "softmax"
。Rescaling
)。預設值為 True
。呼叫引數
numpy.array
或後端原生張量,4D 具有 3 個顏色通道,如果 include_preprocessing
為 True
,則值在 [0, 255]
範圍內,否則在 [-1, 1]
範圍內。回傳
一個模型實例。
MobileNetV3Large
函數keras.applications.MobileNetV3Large(
input_shape=None,
alpha=1.0,
minimalistic=False,
include_top=True,
weights="imagenet",
input_tensor=None,
classes=1000,
pooling=None,
dropout_rate=0.2,
classifier_activation="softmax",
include_preprocessing=True,
name="MobileNetV3Large",
)
實例化 MobileNetV3Large 架構。
參考文獻
MAC 代表乘法累加 (Multiply Adds)
分類檢查點 | MAC(M) | 參數 (M) | 前 1 名準確度 | Pixel1 CPU (毫秒) |
---|---|---|---|---|
mobilenet_v3_large_1.0_224 | 217 | 5.4 | 75.6 | 51.2 |
mobilenet_v3_large_0.75_224 | 155 | 4.0 | 73.3 | 39.8 |
mobilenet_v3_large_minimalistic_1.0_224 | 209 | 3.9 | 72.3 | 44.1 |
mobilenet_v3_small_1.0_224 | 66 | 2.9 | 68.1 | 15.8 |
mobilenet_v3_small_0.75_224 | 44 | 2.4 | 65.4 | 12.8 |
mobilenet_v3_small_minimalistic_1.0_224 | 65 | 2.0 | 61.9 | 12.2 |
關於圖像分類的使用案例,請參閱 此頁面以取得詳細範例。
關於遷移學習的使用案例,請務必閱讀遷移學習和微調指南。
注意:每個 Keras 應用程式都預期特定類型的輸入預處理。對於 MobileNetV3,預設情況下輸入預處理會包含為模型的一部分 (作為 Rescaling
層),因此 keras.applications.mobilenet_v3.preprocess_input
實際上是直通函數。在此使用案例中,MobileNetV3 模型預期它們的輸入是像素值在 [0-255]
範圍內的浮點張量。同時,可以透過將 include_preprocessing
引數設定為 False
來停用作為模型一部分的預處理 (即 Rescaling
層)。停用預處理時,MobileNetV3 模型預期它們的輸入是像素值在 [-1, 1]
範圍內的浮點張量。
參數
(224, 224, 3)
的模型,則需要指定。它應該恰好有 3 個輸入通道。如果您想要從 input_tensor 推斷 input_shape,您也可以省略此選項。如果您選擇同時包含 input_tensor 和 input_shape,則如果它們符合,將會使用 input_shape,如果形狀不符合,則會擲回錯誤。例如,(160, 160, 3)
會是一個有效的值。alpha < 1.0
,則按比例減少每層中的篩選器數量。alpha > 1.0
,則按比例增加每層中的篩選器數量。alpha == 1
,則在每層中使用論文中的預設篩選器數量。True
。None
(隨機初始化)、"imagenet"
(在 ImageNet 上預先訓練) 或要載入的權重檔案路徑之一。layers.Input()
的輸出),用作模型的影像輸入。include_top
為 False
時,用於特徵提取的可選池化模式。None
表示模型的輸出將是最後一個卷積區塊的 4D 張量輸出。avg
表示全域平均池化將會套用至最後一個卷積區塊的輸出,因此模型的輸出將會是 2D 張量。max
表示將會套用全域最大池化。include_top
為 True
且未指定任何 weights
引數時才需要指定。str
或可呼叫物件。「頂層」上要使用的啟用函數。除非 include_top=True
,否則會忽略。設定 classifier_activation=None
以回傳「頂層」的 logits。載入預先訓練的權重時,classifier_activation
只能是 None
或 "softmax"
。Rescaling
)。預設值為 True
。呼叫引數
numpy.array
或後端原生張量,4D 具有 3 個顏色通道,如果 include_preprocessing
為 True
,則值在 [0, 255]
範圍內,否則在 [-1, 1]
範圍內。回傳
一個模型實例。