可視化經典模型的對比實驗總結

可視化經典模型的對比實驗總結


環境安裝

安裝OpenGL

sudo apt-get install -y build-essential  libxmu-dev libgl1-mesa-glx libglu1-mesa-dev libgl1-mesa-dev freeglut3-dev libglew-dev libsdl2-dev libsdl2-image-dev libglm-dev libfreetype6-dev

安裝Netron

網頁版://netron.app/
官方下載://github.com/lutzroeder/netron

安裝zetane

官方鏈接「」//zetane.com/
GitHub鏈接://github.com/zetane/viewer

AlexNet

Alexnet 是一個影像分類模型,其中輸入是 1000 個不同類別(例如貓、狗等)之一的影像,輸出是 1000 個數字的向量。
輸出向量的第i個元素是輸入影像屬於第i類的概率;因此,輸出向量的所有元素之和為 1。
AlexNet 的輸入是大小為 224×224 像素的 RGB 影像。

模型設計圖

Netron結構圖

weights

bias

input (1,3,224,224)

Conv

Feature Maps

ReLU

MaxPool

整體結構圖

feature0

feature3

feature6

feature8

feature10

classify

VGG

模型設計圖

Netron結構圖

整體結構圖

feature0

feature2

feature5

feature7

feature10

feature12

feature14

feature17

feature19

feature21

feature24

feature26

feature28

classifier

GoogleNet

模型設計圖

Netron網路圖

zetane整體結構圖

詳細可視化
1

2

3

分支

m_1

m_2

m_3

m_4

for_epoch 9次

output_merge

end

Inception_v3

也稱為 GoogleNetv3,2015 年開始在 Imagenet 上訓練的著名 ConvNet。

模型設計圖

Netron結構圖

zetane整體結構圖

conv

分支

m_1

m_2

m_3

m_4

全局圖

DenseNet

密集卷積網路(DenseNet)以前饋方式將每一層連接到其他每一層。

網路設計圖

Netron網路圖

這個部分可以看做是一個基礎組件的結構,後面大量嵌套並循環使用

局部圖

第一部分

第二部分

第三部分-頭

第三部分-尾

第四部分

zetane網路圖

SqueezeNet

參數減少 50 倍的 Alexnet 級精度。

網路設計圖

Netron網路圖

Zetene整體圖

細節

features.0

features.3.squeeze

features.3.expand3x3

features.4

features.4.expand1x1

features.5.squeeze

features.5.expand3x3

features.7.squeeze

features.7.expand

features.8.squeeze

features.8.expand

features.9.squeeze

features.10.expand

features.10.squeeze

features.10.expand1x1

features.12.squeeze

features.12.expand.3×3

classifer.1

全局圖

output

ShuffleNet

一個針對速度和記憶體進行了優化的高效 ConvNet,在 Imagenet 上進行了預訓練。

所有預訓練模型都期望輸入影像以相同的方式歸一化,即形狀為 的 3 通道 RGB 影像的小批量(3 x H x W),其中HW預計至少為224。必須將影像載入到 的範圍內,然後使用 和[0, 1]進行歸一化。`mean = [0.485, 0.456, 0.406]“std = [0.229, 0.224, 0.225]。

網路設計圖

Netron網路圖

Zetane整體圖

p1

這裡同樣可以將幾個重複的結構作為單獨模組來理解分析,大致可分為兩個組件和一個連接件。

組件一:包含兩個輸出層,輸出層一包含三個Conv卷積和兩個ReLu,輸出層二包含兩個Conv卷積和一個ReLu。

組件二:包含兩個輸出層,輸出層一無其他操作直接輸出,輸出層二包含三個Conv卷積和兩個ReLu。

連接件:這部分主要是用來連接組件模組設計的,包含Constant、Concat、Transpose、Reshape、Split。

先來預覽下組件模組的效果

組件一

組件二

連接件:

concat

input_1 (24,28,28)

input_2 (24,28,28)

output (48,28,28)

Constant

Reshape

Transpose

Split

input (48,28,28)

output_1 (24,28,28)

output_2 (24,28,28)

模型組網

組網方式一

組網方式二

end

ResNet

在 ImageNet 上預訓練的深度殘差網路

網路設計圖

Netron網路圖

Zetane整體圖

局部細節

p1

p2

p3

p4

p5

p6

p7

p8

p9

p10

整體可視化

output

ResNext

下一代 ResNet,更高效、更準確

網路設計圖

Netron結構圖

Zetane整體圖

局部細節圖

下面是一個基本的結構,共包括兩個輸出層,其中一個輸出層包含三個Conv卷積和兩個ReLu,另一個輸出層只包含一個Conv卷積。
最後合併兩個輸出通道的結果,輸入下一層進行計算。

簡單來看下效果

接下來是對上面基本結構的一個交叉循環,共計16個。

最終輸出

output結果

Wide_ResNet

Netron網路圖

Zetane整體結構

p1

兩個基本結構

結構一

結構二

下面分別來看下兩個結構的可視化

結構一,分為兩個輸出層,一層僅包含一個Conv卷積,另外一層是包含三個Conv卷積和兩個ReLu。

結構二,分為兩個輸出層,其中一層不包含操作,另外一層與結構一的第二層一樣,包含三個Conv卷積和兩個ReLu。

中間連接部分,主要是承上啟下,將兩個輸出通道的輸出結果進行疊加融合,重新進行ReLu傳遞給下面。

RegNet

Netron網路圖

Zetane整體圖

兩個基本結構

結構一

結構二

結構一

局部細節一

局部細節二

結構二

整體效果

局部細節

細節一

細節二

連接部分

結尾部分