視覺化經典模型的對比實驗總結
環境安裝
安裝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
網頁版:https://netron.app/
官方下載:https://github.com/lutzroeder/netron
安裝zetane
官方連結“”https://zetane.com/
GitHub連結:https://github.com/zetane/viewer
AlexNet
Alexnet 是一個影像分類模型,其中輸入是 1000 個不同類別(例如貓、狗等)之一的影像,輸出是 1000 個數字的向量。
輸出向量的第i個元素是輸入影像屬於第i類的概率;因此,輸出向量的所有元素之和為 1。
AlexNet 的輸入是大小為 224x224 畫素的 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.3x3
classifer.1
全域性圖
output
ShuffleNet
一個針對速度和記憶體進行了優化的高效 ConvNet,在 Imagenet 上進行了預訓練。
所有預訓練模型都期望輸入影像以相同的方式歸一化,即形狀為 的 3 通道 RGB 影像的小批量(3 x H x W)
,其中H
和W
預計至少為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整體圖
兩個基本結構
結構一
結構二
結構一
區域性細節一
區域性細節二
結構二
整體效果
區域性細節
細節一
細節二
連線部分
結尾部分