深度學習(05)--典型CNN結構(VGG13,16,19)

文章目錄

  • 目錄
    • 1.VGG結構
    • 2.VGG結構解釋
    • 3.3*3卷積核的優點
    • 4.VGG的muti-scale方法
    • 5.VGG的應用

目錄

1.VGG結構

在這里插入圖片描述
在這里插入圖片描述
? LeNet5用大的卷積核來獲取圖像的相似特征
? AlexNet用99、1111的濾波器
? VGG 巨大的進展是通過依次采用多個 3×3 卷積,模仿出更大的感受野(receptive field)效果,例如 5×5 與 7×7。
? 這些思想也被用在更多的網絡架構中,如 Inception 與 ResNet。

VGG16的效果最好

在這里插入圖片描述

在這里插入圖片描述

  • VGG16 的第 3、4、5 塊(block):256、512、512個 3×3 濾波器依次用來提取復雜的特征。
  • 其效果就等于是一個帶有 3 個卷積層的大型的 512×512 大分類器。

2.VGG結構解釋

(1)VGG全部使用33卷積核、22池化核,不斷加深網絡結構來提升性能。
(2)A到E網絡變深,參數量沒有增長很多,參數量主要在3個全連接層。
(3)訓練比較耗時的依然是卷積層,因計算量比較大。
(4)VGG有5段卷積,每段有2~3個卷積層,每段尾部用池化來縮小圖片尺寸。
(5)每段內卷積核數一樣,越靠后的段卷積核數越多:64–128–256–512–512。

3.3*3卷積核的優點

在這里插入圖片描述

4.VGG的muti-scale方法

在這里插入圖片描述
在這里插入圖片描述

  • LRN層作用不大。
  • 越深的網絡效果越好。
  • 11的卷積也是很有效的,但是沒有33的卷積好
  • 大的卷積核可以學習更大的空間特征

1*1的卷積的作用
1.實現跨通道的交互和信息整合

  • 1×1的卷積層(可能)引起人們的重視是在NIN的結構中,論文中林敏師兄的想法是利用MLP代替傳統的線性卷積核,從而提高網絡的表達能力。文中同時利用了跨通道pooling的角度解釋,認為文中提出的MLP其實等價于在傳統卷積核后面接cccp層,從而實現多個feature map的線性組合,實現跨通道的信息整合。

2.進行卷積核通道數的降維

  • 降維( dimension reductionality )。比如,一張500 X500且厚度depth為100 的圖片在20個filter上做1X1的卷積,那么結果的大小為500X500X20。
  • 加入非線性。卷積層之后經過激勵層,1X1的卷積在前一層的學習表示上添加了非線性激勵( non-linear activation ),提升網絡的表達能力;

5.VGG的應用

VGG9、VGG11、VGG13、VGG16、VGG19

出現了梯度消失的問題
只在第一個卷積(name=’block1_conv1’)后面加了BatchNormalization就解決了

def VGG16(input_shape=(64,64,3), classes=6):X_input = Input(input_shape)"block 1"X = Conv2D(filters=4, kernel_size=(3,3), strides=(1,1), activation='relu', padding='same', name='block1_conv1')(X_input)X = BatchNormalization(axis=3)(X)X = Conv2D(filters=4, kernel_size=(3,3), strides=(1,1), activation='relu', padding='same', name='block1_conv2')(X)X = MaxPooling2D((2,2), strides=(2,2), name='block1_pool')(X)"block 2"X = Conv2D(filters=8, kernel_size=(3,3), strides=(1,1), activation='relu', padding='same', name='block2_conv1')(X)X = BatchNormalization(axis=3)(X)X = Conv2D(filters=8, kernel_size=(3,3), strides=(1,1), activation='relu', padding='same', name='block2_conv2')(X)X = MaxPooling2D((2,2), strides=(2,2), name='block2_pool')(X)"block 3"X = Conv2D(filters=16, kernel_size=(3,3), strides=(1,1), activation='relu', padding='same', name='block3_conv1')(X)X = Conv2D(filters=16, kernel_size=(3,3), strides=(1,1), activation='relu', padding='same', name='block3_conv2')(X)X = Conv2D(filters=16, kernel_size=(3,3), strides=(1,1), activation='relu', padding='same', name='block3_conv3')(X)X = MaxPooling2D((2,2), strides=(2,2), name='block3_pool')(X)"block 4"X = Conv2D(filters=32, kernel_size=(3,3), strides=(1,1), activation='relu', padding='same', name='block4_conv1')(X)X = Conv2D(filters=32, kernel_size=(3,3), strides=(1,1), activation='relu', padding='same', name='block4_conv2')(X)X = Conv2D(filters=32, kernel_size=(3,3), strides=(1,1), activation='relu', padding='same', name='block4_conv3')(X)X = MaxPooling2D((2,2), strides=(2,2), name='block4_pool')(X)"block 5"X = Conv2D(filters=32, kernel_size=(3,3), strides=(1,1), activation='relu', padding='same', name='block5_conv1')(X)X = Conv2D(filters=32, kernel_size=(3,3), strides=(1,1), activation='relu', padding='same', name='block5_conv2')(X)X = Conv2D(filters=32, kernel_size=(3,3), strides=(1,1), activation='relu', padding='same', name='block5_conv3')(X)X = MaxPooling2D((2,2), strides=(2,2), name='block5_pool')(X)"flatten, fc1, fc2, fc3"X = Flatten(name='flatten')(X)X = Dense(256,    activation='relu',    name='fc1')(X)X = Dense(256,    activation='relu',    name='fc2')(X)X = Dense(classes, activation='softmax', name='fc3')(X)model = Model(inputs=X_input, outputs=X, name='VGG16')return model

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/news/445307.shtml
繁體地址,請注明出處:http://hk.pswp.cn/news/445307.shtml
英文地址,請注明出處:http://en.pswp.cn/news/445307.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

redis——發布和訂閱

頻道的訂閱和退訂 當一個客戶端執行 SUBSCRIBE 命令, 訂閱某個或某些頻道的時候, 這個客戶端與被訂閱頻道之間就建立起了一種訂閱關系。 Redis 將所有頻道的訂閱關系都保存在服務器狀態的 pubsub_channels 字典里面, 這個字典的鍵是某個被訂…

Pytorch(1)-內置/自己設計的損失函數使用

內置/自己設計的損失函數使用對比1.內置損失函數2.自己設計損失函數Pytorch內置了許多常用的損失函數,但是,實際應用中,往往需要依據不同的需求設計不同的損失函數。本篇博文對比總結了使用 內置和 自己設計損失函數的語法規則流程。1.內置損…

redis——事務

Redis 事務可以一次執行多個命令, 并且帶有以下三個重要的保證: 批量操作在發送 EXEC 命令前被放入隊列緩存。收到 EXEC 命令后進入事務執行,事務中任意命令執行失敗,其余的命令依然被執行。在事務執行過程,其他客戶端…

深度學習(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的局部感受野窗口的運算…

Pytorch(2)-tensor常用操作

tensor常用數學操作1. 隨機數1.1 torch.rand() - 均勻分布數字1.2 torch.randn() - 正態分布數字2. 求和2.1 torch.sum(data, dim)2.2 numpy.sum(data, axis)3. 求積3.1 點乘--對應位置相乘3.2 矩陣乘法4. 均值、方差4.1 torch tensor.mean() .std()4.2 numpy array.mean() .st…

Java編程規約(OOP)

1、【強制】避免通過一個類的對象引用訪問此類的靜態變量或靜態方法,無謂增加編譯器解析 成本,直接用類名來訪問即可。 2、【強制】所有的覆寫方法,必須加Override 注解。 說明:getObject()與 get0bject()的問題。一個是字母的…

深度學習(07)-- 經典CNN網絡結構(Inception (v1-v4))

文章目錄目錄1.Inception介紹1.1 Inception結構1.2 Inception V1(GoogleNet)1.3 Inception V2(Batch Norm)1.4 Inception V3(Factorization)1.5 Inception V4(ResNet)1.5 Inception v1~v4 總結1.6 Inception進階2.Inception實現目…

Python(13)-函數,lambda語句

函數1 函數定義2 函數調用3 函數注釋文檔4 函數參數4.1 參數列表,默認參數,任意參數4.1.1 無缺省值參數4.1.2(部分)缺省值參數4.1.3 數量不定形參數4.2 可變對象和不可變對象4.3 作用域4.3.1 globals()函數4.3.2 global 聲明變量為全局變量5 函數返回值5…

深度學習(08)-- Residual Network (ResNet)

文章目錄目錄1.殘差網絡基礎1.1基本概念1.2VGG19、ResNet34結構圖1.3 梯度彌散和網絡退化1.4 殘差塊變體1.5 ResNet模型變體1.6 Residual Network補充1.7 1*1卷積核(補充)2.殘差網絡介紹(何凱明)3.ResNet-50(Ng)3.1 非常深的神經網…

Python(14)-模塊

模塊Python標準庫,第三方庫都是一個個模塊,我們還可以編寫自己的模塊。模塊python程序架構的核心模塊,模塊是一個工具包。 每一個以.py為擴展名的源代碼文件都是一個模塊。 想要使用工具包中的工具,可以使用Import的方式導入。 …

redis——命令請求的執行過程

發送命令請求 當用戶在客戶端中鍵入一個命令請求時, 客戶端會將這個命令請求轉換成協議格式, 然后通過連接到服務器的套接字, 將協議格式的命令請求發送給服務器。 讀取命令請求 當客戶端與服務器之間的連接套接字因為客戶端的寫入而變得可…

深度學習(09)-- DenseNet

文章目錄目錄1.DenseNet網絡結構2.稠密連接及其優點3.代碼實現4.補充說明目錄 1.DenseNet網絡結構 2.稠密連接及其優點 每層以之前層的輸出為輸入,對于有L層的傳統網絡,一共有L個連接,對于DenseNet,則有L*(L1)/2。 這篇論文主要…

redis——緩存擊穿/穿透/雪崩

緩存穿透 一般的緩存系統,都是按照key去緩存查詢,如果不存在對應的value,就去后端系統查找(比如DB)。 一些惡意的請求會故意查詢不存在的key,請求量很大,就會對后端系統造成很大的壓力。這就叫做緩存穿透…

python(15)-window7配置iPython

前提:安裝了Pythonanaconda anaconda安裝參考:https://www.zhihu.com/question/58033789 在window系統下可以使用兩種方法來實現類似與于Linux終端命令運行程序的方法(推薦方式2): 1.cmd:自己沒有操作過,可以參考下面…

深度學習(10)-- Capsules Networks(CapsNet)

版權聲明&#xff1a;本文為博主原創文章&#xff0c;未經博主允許不得轉載。 https://blog.csdn.net/malele4th/article/details/79430464 </div><div id"content_views" class"markdown_views"><!-- flowchart 箭頭圖標 勿刪 --&g…

手把手maven的功能/安裝/使用/idea集成

看這篇文章不用著急安裝&#xff0c;跟著步驟一定會成功&#xff0c;要理解maven是什么&#xff0c;如何使用。 介紹 maven官網 對于一個小白來說&#xff0c;官網有用的信息就是這些 不管如何介紹maven&#xff0c;作為使用者來說&#xff0c;主要感覺兩個方面有幫助&#x…

python(16)-列表list,for循環

高級數據類型--列表1列表定義2列表中取值3列表的增&#xff0c;刪&#xff0c;查&#xff0c;改3.1修改指定位置的數據3.2確定指定元素的索引3.3增加操作3.4刪除操作3.5 元素是否存在與列表中 in3.6在指定索引位置插入元素4列表的數據統計5列表排序6列表的循環遍歷-for7多維度l…

深度學習(11)-- GAN

TensorFlow &#xff08;GAN&#xff09; 目錄 TensorFlow &#xff08;GAN&#xff09;目錄1、GAN1.1 常見神經網絡形式1.2 生成網絡1.3 新手畫家 & 新手鑒賞家1.4 GAN網絡1.5 例子 1、GAN 今天我們會來說說現在最流行的一種生成網絡, 叫做 GAN, 又稱生成對抗網絡, 也…

Python外(1)--try-expect

語法&#xff1a; try:正常情況下執行的代碼塊 expect 錯誤類型1:&#xff08;可選&#xff09;錯誤類型1對應的處理方案 expect 錯誤類型2:&#xff08;可選&#xff09;錯誤類型2對應的處理方案 expect:剩下的錯誤類型對應的處理方案 else:&#xff08;可選&#xff09;沒有…

redis——數據結構和對象的使用介紹

redis官網 微軟寫的windows下的redis 我們下載第一個 額案后基本一路默認就行了 安裝后&#xff0c;服務自動啟動&#xff0c;以后也不用自動啟動。 出現這個表示我們連接上了。 redis命令參考鏈接 String 字符串結構 struct sdshdr{//記錄buf數組中已使用字節的數量int …