探究MobileNet論文

一、從論文下載開始

MobileNet論文是由Google Brain團隊提出,2017年發布的一篇基於深度學習的輕量級模型架構講稿,主要針對嵌入式設備和移動端設備進行優化,實現高效的圖像識別應用。

首先,在官方網站https://arxiv.org/abs/1704.04861 上下載閱讀論文。


$ wget https://arxiv.org/pdf/1704.04861.pdf
$ open 1704.04861.pdf

二、Mobilenet網路結構圖

Mobilenet的網路結構的核心思想是Depthwise Separable Convolution。深度可分離卷積包括兩個步驟,第一步是Depthwise Convolution,第二步是Pointwise Convolution。首先通過Depthwise Convolution計算每一個輸入通道的卷積層,得到的結果叫做Depthwise Features。接著將Depthwise Features送入Pointwise Convolution中,進行全局卷積操作,然後產生新的N個卷積特徵,輸出結果就是Depthwise Features與Pointwise Features的融合。

該網路結構圖如圖所示:


from IPython.display import Image
Image(filename='mobilenet_structure.png', width=400, height=400)

三、Mobilenet v2

Mobilenet v2是MobileNet v1的後續版本。隨著深度學習的快速發展,人們越來越需要更深、更準確的模型,所以Google在v1的基礎上,提出了一些新的設計思路,如Inverted Residuals、Linear Bottlenecks等。具體的網路結構與v1有很大的不同,v2的網路結構圖如下:


from IPython.display import Image
Image(filename='mobilenet_v2_structure.png', width=400, height=400)

四、實現MobileNet

下面是使用Keras框架實現MobileNet的代碼示例:


from keras.layers import Input, Conv2D, DepthwiseConv2D, Activation
from keras.models import Model

def conv_block(inputs, filters, kernel, strides):
    x = Conv2D(filters, kernel_size=kernel, strides=strides, padding='same')(inputs)
    x = Activation('relu')(x)
    return x

def depthwise_block(inputs, depth_multiplier, kernel, strides):
    x = DepthwiseConv2D(kernel_size=kernel, strides=strides, depth_multiplier=depth_multiplier, padding='same')(inputs)
    x = Activation('relu')(x)
    return x

def mobileNet(input_shape, num_classes):
    inp = Input(shape=input_shape)
    x = conv_block(inp, 32, 3, strides=(2, 2))
    x = depthwise_block(x, 1, 3, strides=(1, 1))
    x = conv_block(x, 64, 1, strides=(1, 1))
    x = depthwise_block(x, 1, 3, strides=(2, 2))
    x = conv_block(x, 128, 1, strides=(1, 1))
    x = depthwise_block(x, 1, 3, strides=(1, 1))
    x = conv_block(x, 128, 1, strides=(1, 1))
    x = depthwise_block(x, 1, 3, strides=(2, 2))
    x = conv_block(x, 256, 1, strides=(1, 1))
    x = depthwise_block(x, 1, 3, strides=(1, 1))
    x = conv_block(x, 256, 1, strides=(1, 1))
    x = depthwise_block(x, 1, 3, strides=(2, 2))
    x = conv_block(x, 512, 1, strides=(1, 1))
    for i in range(5):
        x = depthwise_block(x, 1, 3, strides=(1, 1))
        x = conv_block(x, 512, 1, strides=(1, 1))
    x = depthwise_block(x, 1, 3, strides=(2, 2))
    x = conv_block(x, 1024, 1, strides=(1, 1))
    x = depthwise_block(x, 1, 3, strides=(1, 1))
    x = conv_block(x, 1024, 1, strides=(1, 1))
    x = Conv2D(num_classes, kernel_size=1, strides=(1, 1), padding='same')(x)
    x = Activation('softmax')(x)
    model = Model(inp, x)
    return model

input_shape = (224, 224, 3)
num_classes = 10
model = mobileNet(input_shape, num_classes)
model.summary()

原創文章,作者:小藍,如若轉載,請註明出處:https://www.506064.com/zh-tw/n/187562.html

(0)
打賞 微信掃一掃 微信掃一掃 支付寶掃一掃 支付寶掃一掃
小藍的頭像小藍
上一篇 2024-11-28 06:23
下一篇 2024-11-28 06:23

相關推薦

  • Python論文參考文獻舉例用法介紹

    Python作為一種強大的編程語言,被廣泛應用於數據分析、機器學習、人工智慧等領域。在科學研究和學術論文中,參考文獻舉例是非常重要的一部分,本文將圍繞著Python論文參考文獻舉例…

    編程 2025-04-27
  • C語言程序設計論文2000字

    本文旨在探討C語言程序設計的核心內容,包括語法基礎、函數、指針、文件操作等方面。通過具體的代碼實例,幫助初學者理解和掌握C語言的核心概念,進而提高編程水平和技能。 一、語法基礎 C…

    編程 2025-04-27
  • 論文參考文獻必須在文中有引用嗎

    一、什麼是參考文獻 參考文獻是指作者在寫作過程中所參考的其他文獻,可以是書籍、期刊、論文、網頁等,它記錄了作者在研究過程中所查閱的文獻資料,是證明文章研究背景、來源可靠性的重要依據…

    編程 2025-04-25
  • 國外論文網站

    國外論文網站是為全球範圍內的學術研究人員提供了一個交流與分享的平台,對於廣大的學者來說,這些網站提供了海量的研究資源和信息。本文將從多個方面對國外論文網站進行詳細的闡述,包括網站的…

    編程 2025-04-25
  • VGG16論文詳解

    一、VGG16的介紹 VGG16是由Visual Geometry Group(牛津大學視覺幾何組)的Karen Simonyan和Andrew Zisserman於2014年提出…

    編程 2025-04-23
  • 論文表格分析

    一、表格樣式 1、論文中的表格樣式大多為簡潔明了的線框表格,沒有花哨的色彩和邊框。這種樣式方便讀者快速獲取信息,避免了無關信息的干擾。 代碼示例: 姓名 年齡 性別 小明 18 男…

    編程 2025-04-12
  • PointNet論文綜述

    一、點雲數據 點雲數據是由大量的離散點組成的三維空間中的數據形式,例如激光雷達掃描的地形、建築物或者是攝像機捕捉的物體等三維場景都可以轉換為點雲數據。點雲數據的稀疏性、不規則性、本…

    編程 2025-02-17
  • 論文引用:詳細闡述多個方面

    一、引言 在學術論文中,引用是非常重要的部分。正確的引用可以有效提升論文的質量和可信度。在本文中,我們將會從多個方面詳細闡述論文如何進行引用。 二、正確的引用格式 正確的引用格式是…

    編程 2025-02-05
  • 深度學習在目標跟蹤中的應用:DeepSort論文分析

    一、DeepSort 論文概述 DeepSort是一篇由NVIDIA證實的目標跟蹤方法,旨在提高人流量計數和運動行為分析的準確性。DeepSort具有基於卷積神經網路的特徵提取,使…

    編程 2025-01-27
  • 關於c語言的論文舉例,關於c語言的論文舉例說明

    本文目錄一覽: 1、C語言論文,跪求!! 2、求一篇編程範式對c語言學習的影響的論文 3、C語言普通論文 4、C語言的用途,定位及特點(論文) 5、c語言課程設計論文 C語言論文,…

    編程 2025-01-14

發表回復

登錄後才能評論