第四章第7節 使用重複元素的網路(VGG)

2021-09-27 04:45:15 字數 1339 閱讀 9078

alexnet在lenet的基礎上增加了3個卷積層。但alexnet作者對它們的卷積視窗、輸出通道和構造順序均做了大量的調整。雖然alexnet指明了深度卷積神經網路可以取得出色的結果,但並沒有提供簡單的規則以指導後來的研究者如何設計新的網路。我們將在本章的後續幾節裡介紹幾種不同的深度網路設計思路。

本節介紹vgg,它的名字**於**作者所在的實驗室visual geometry group。vgg提出了可以通過重複使用簡單的基礎塊來構建深度模型的思路。

4.7.1 vgg塊

vgg塊的組成規律是:連續使用數個相同的填充為1,視窗形狀為3x3的卷積層後接上乙個步幅為2、視窗形狀為2x2的最大池化層。卷積層保持輸入的高和寬不變,而池化層則對其減半。我們使用vgg_block函式來實現這個基礎的vgg塊,它可以指定卷積層的數量num_convs和輸出通道數num_channels。

4.7.2 vgg網路

與alexnet和lenet一樣,vgg網路由卷積層模組後接全連線層模組構成。卷積層模組串聯數個vgg_block,其超引數由變數conv_arch定義。改變量指定了每個vgg塊裡卷積層個數和輸出通道數。全連線模組則跟alexnet中的一樣。

現在我們構造乙個vgg網路。它有5個卷積塊,前2塊使用單卷積層,而後3塊使用雙卷積層。第一塊的輸出通道是64,之後每次對輸出通道數翻倍,直到變為512。因為這個網路使用了8個卷積層和3個全連線層,所以經常被稱為vgg-11。

下面構造乙個高和寬均為224的單通道資料樣本來觀察每一層的輸出形狀。

可以看到,每次我們將輸入的高和寬減半,直到最終高和寬變成7後傳入全連線層。與此同時,輸出通道數每次翻倍,直到變成512。因為每個卷積層的視窗大小一樣,所以每層的模型引數尺寸和計算複雜度與輸入高、輸入寬、輸入通道數和輸出通道數的乘積成正比。vgg這種高和寬減半以及通道翻倍的設計使得多數卷積層都有相同的模型引數尺寸和計算複雜度。

4.7.3 獲取資料和訓練模型

因為vgg-11計算上比alexnet更加複雜、出於測試的目的我們構造乙個通道數更小,或者說更窄的網路在fashion-mnist資料集上進行訓練。

除了使用稍大些的學習率,模型訓練過程與上一節的alexnet中的類似。

第四章 Lock的使用

前面講了使用synchronized來實現執行緒的同步,這次使用lock物件來實現。乙個類學學api感覺沒啥意思 記住乙個類reentranlock類,lock new reentranlock lock.lock lock.unlock 在這之間的 就能實現同步,跟synchronized的同步 ...

第四章 第四節 Scratch3 0過程的巢狀

正如我們前面提到的,過程應當執行單一的 明確定義的任務。但是為了執行多個任務,通常都希望在過程中呼叫其他過程,這在scratch中是完全可行的。過程的巢狀提高了程式在結構化和組織上的靈活性。我們通過畫兩個有趣的圖形為例來學習本節的內容。首先定義乙個畫正方形的過程 其次定義乙個畫多個正方形的過程 呼叫...

第四章第一節 文字的處理

一 教學目標 1 認識文字的怎麼在計算機裡面輸入 儲存 輸出的 2 文字處理軟體複習 二 教學重點難點 1 文字的輸入 儲存 輸出 2 對以前知識的複習 三 所需課時 2課時 四 教學過程 一 文字的輸入 輸入法 音碼 形碼 混合碼的介紹 二 文字的儲存 二進位制的認識 英文本元的表示 ascii ...