Mobilenet是為支持智能手機出現而創建的開源模型。它使用CNN體系結構執行計算機視覺任務,例如圖像分類和對象檢測。使用此體系結構的模型通常需要大量的計算成本和硬件資源,但是Mobilenet是可以使用移動設備和嵌入的。 多年來,該模型已用於各種現實世界應用。它還具有一些功能,例如使用深度分離卷積減少參數。因此,借助移動設備的硬件資源有限,該技術可以幫助使模型運行。
我們將討論該模型如何使用預訓練的預測類對圖像進行深度分類器圖像有效地對圖像進行分類。
學習目標
了解Mobilenet及其工作原理。
> > data Science Blogathon的一部分。 內容表的>> MobileNet
>
>因此,這裡的區別在於,只要僅應用一個過濾器,乘法任務就減少了,這意味著輸出的通道數與輸入相同。這導致了彎曲的捲積。
tbe Pointwise卷積使用1×1濾波器結合或擴展功能。這有助於模型學習在頻道功能上分配不同模式以創建新功能映射。這使得旋轉卷積能夠增加或減少輸出特徵圖中的通道數。 Mobilenet Architecure
>此計算機視覺模型建立在CNN體系結構上,以執行圖像分類和對象檢測任務。深度可分離卷積的使用是將該模型調整到移動設備和嵌入式設備中,因為它允許建立輕質的深神經網絡。
>這種機制帶來了參數計數和延遲的減少,以滿足資源約束。該體系結構可實現模型輸出的效率和準確性。使用此模型進行圖像分類需要幾個步驟。該模型使用其內置預測類接收並分類輸入圖像。讓我們深入了解如何運行Mobilenet的步驟:
導入圖像分類的必要庫
>您需要導入一些基本模塊以運行此模型。這首先要從變壓器庫導入圖像處理器和圖像分類模塊。它們分別有助於預處理圖像和加載預訓練的模型。另外,PIL用於操縱圖像,而“請求”允許您從網絡中獲取圖像。
from transformers import AutoImageProcessor, AutoModelForImageClassification from PIL import Image import requests
image = Image.open('/content/imagef-ishfromunsplash-ezgif.com-webp-to-jpg-converter.jpg')
>從PIL庫中使用函數“ Image.open”來從文件路徑加載圖像,在這種情況下,該圖像是從我們本地設備上傳的。另一個替代方法是使用其URL獲取圖像。
下面的代碼從MobileNetV2預訓練的模型中初始化了“自動ImimageProcessor”過程。該部分在將圖像饋送到模型之前處理圖像預處理。另外,如第二行所示,代碼為圖像分類加載相應的MobilenEtv2模型。
preprocessor = AutoImageProcessor.from_pretrained("google/mobilenet_v2_1.0_224") model = AutoModelForImageClassification.from_pretrained("google/mobilenet_v2_1.0_224")
此步驟是將預處理圖像轉換為適合Pytorch的格式的地方。然後,它通過模型傳遞以生成輸出邏輯,將使用SoftMax將其轉換為概率。
inputs = preprocessor(images=image, return_tensors="pt") outputs = model(**inputs) logits = outputs.logits
# model predicts one of the 1000 ImageNet classes predicted_class_idx = logits.argmax(-1).item() print("Predicted class:", model.config.id2label[predicted_class_idx])
>此代碼從模型的輸出(logits)中找到具有最高預測分數的類,並從模型的配置中檢索其相應的標籤。然後打印預測的類標籤。
>這是輸出:
這是指向Colab文件的鏈接。
>
>關於該模型的工作方式,從體系結構到應用程序有一些討論點。以下是本文的一些亮點:
常見問題
> Q1。是什麼使MobilenetV2與其他CNN模型不同? MobileNetV2使用可分開的捲積和倒殘差,與傳統CNN相比,它對移動和嵌入式系統的效率更高。
以上是如何使用MobilenEtV2模型進行圖像分類?的詳細內容。更多資訊請關注PHP中文網其他相關文章!