日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 人工智能 > pytorch >内容正文

pytorch

深度学习(06)-- Network in Network(NIN)

發布時間:2023/12/13 pytorch 30 豆豆
生活随笔 收集整理的這篇文章主要介紹了 深度学习(06)-- Network in Network(NIN) 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

文章目錄

  • 目錄
    • 1.NIN 結構
    • 2.MLP卷積
    • 3.全局均值池化
    • 4.總體網絡架構
    • 5.NIN補充
      • 5.1 廣義線性模型(GLM)的局限性
      • 5.2 CCCP層
      • 5.3 1*1卷積核作用(補充)
    • 6.手勢識別RGB圖像--NIN結構

目錄

1.NIN 結構


2.MLP卷積

  • 傳統CNN的局部感受野窗口的運算,可以理解為一個單層的網絡。
  • MLPconv層是每個卷積的局部感受野中還包含了一個微型的多層網絡
  • MLPconv采用多層網絡結構(一般3層)提高非線性,對每個局部感受野進行更加復雜的運算。

可以簡單理解是將傳統的卷積操作的輸出在作為一個MLP網絡層的輸入,從而使得輸入到下一層網絡的特征表征更強,對于同一個卷積核,共用一套MLP網絡。

3.全局均值池化


4.總體網絡架構


5.NIN補充

5.1 廣義線性模型(GLM)的局限性

  • 經典CNN中的卷積層就是用線性濾波器對圖像進行內積運算,在每個局部輸出后面跟著一個非線性的激活函數,最終得到的叫作特征圖。
  • 這種卷積濾波器是一種廣義線性模型。所以用CNN進行特征提取時,其實就隱含地假設了特征是線性可分的,可實際問題往往不是線性可分的。
  • GLM的抽象能力比較弱,比線性模型更有表達能力的非線性函數近似器(比如MLP,徑向基神經)

5.2 CCCP層

MLPconv=CONV + MLP,因為conv是線性的,mlp是非線性的,mlp能夠得到更高的抽象,泛化能力更強。

跨通道時,mlpconv=卷積層 + 1×1卷積層,此時mlpconv層也叫cccp層


5.3 1*1卷積核作用(補充)

6.手勢識別RGB圖像–NIN結構


收斂緩慢,且震蕩
加了一層softmax ,第一三塊后加了BatchNormalization,基本解決了

代碼實現:

def NIN(input_shape=(64,64,3), classes=6):X_input = Input(input_shape)"block 1"X = Conv2D(filters=4, kernel_size=(5,5), strides=(1,1), padding='valid', activation='relu', name='conv1')(X_input)X = BatchNormalization(axis=3)(X)X = Conv2D(filters=4, kernel_size=(1,1), strides=(1,1), padding='valid', activation='relu', name='cccp1')(X)X = Conv2D(filters=4, kernel_size=(1,1), strides=(1,1), padding='valid', activation='relu', name='cccp2')(X)X = MaxPooling2D((2,2), strides=(2,2), name='maxpool1')(X)"block 2"X = Conv2D(filters=8, kernel_size=(3,3), strides=(1,1), padding='valid', activation='relu', name='conv2')(X)X = BatchNormalization(axis=3)(X)X = Conv2D(filters=8, kernel_size=(1,1), strides=(1,1), padding='valid', activation='relu', name='cccp3')(X)X = Conv2D(filters=8, kernel_size=(1,1), strides=(1,1), padding='valid', activation='relu', name='cccp4')(X)X = AveragePooling2D((2,2), strides=(2,2), name='maxpool2')(X)"block 3"X = Conv2D(filters=16, kernel_size=(3,3), strides=(1,1), padding='valid', activation='relu', name='conv3')(X)X = BatchNormalization(axis=3)(X)X = Conv2D(filters=16, kernel_size=(1,1), strides=(1,1), padding='valid', activation='relu', name='cccp5')(X)X = Conv2D(filters=16, kernel_size=(1,1), strides=(1,1), padding='valid', activation='relu', name='cccp6')(X)X = MaxPooling2D((2,2), strides=(2,2), name='maxpool3')(X)"block 4"X = Conv2D(filters=6, kernel_size=(3,3), strides=(1,1), padding='same', activation='relu', name='conv4')(X)X = BatchNormalization(axis=3)(X)X = Conv2D(filters=6, kernel_size=(1,1), strides=(1,1), padding='valid', activation='relu', name='cccp7')(X)X = Conv2D(filters=6, kernel_size=(1,1), strides=(1,1), padding='valid', activation='relu', name='cccp8')(X)X = AveragePooling2D((6,6), strides=(1,1), name='Avepool1')(X)"flatten"X = Flatten()(X)X = Dense(classes, activation='softmax', name='fc1')(X)model = Model(inputs=X_input, outputs=X, name='NIN')return model

總結

以上是生活随笔為你收集整理的深度学习(06)-- Network in Network(NIN)的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。