日韩av黄I国产麻豆传媒I国产91av视频在线观看I日韩一区二区三区在线看I美女国产在线I麻豆视频国产在线观看I成人黄色短片

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 >

keras中文文档_【DL项目实战02】图像识别分类——Keras框架+卷积神经网络CNN(使用VGGNet)

發布時間:2025/3/8 67 豆豆
生活随笔 收集整理的這篇文章主要介紹了 keras中文文档_【DL项目实战02】图像识别分类——Keras框架+卷积神经网络CNN(使用VGGNet) 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

版權聲明:小博主水平有限,希望大家多多指導。

目錄:

【使用傳統DNN】

BG大龍:【DL項目實戰02】圖像分類——Keras框架+使用傳統神經網絡DNN?zhuanlan.zhihu.com

【使用卷積神經網絡CNN】

BG大龍:【DL項目實戰02】圖像識別分類——Keras框架+卷積神經網絡CNN(使用VGGNet)?zhuanlan.zhihu.com

1、數據集情況

2、任務目標

3、流程中的注意點

(1)讀取數據

(2)建立CNN(選用VGGNet)

——【第1部分】Conv2D層中,確定data_format類型

——【第2部分】特征提取:(卷積+池化)

——【第3部分】分類識別:(全連接)

(3)設定超參

(4)定義損失函數

(5)訓練模型

(6)結果

4、對比實驗

(1)第1個對比:添加Batch Normalization(BN,批量標準化層)

(2)第2個對比:添加Truncated Normal(TN,截斷分布)

(3)第3個對比:添加Dropout

5、加載模型,進行測試


1、數據集情況


2、任務目標

當輸入“image”時候,能否正確識別,識別的acc是多少


3、流程中的注意點

(1)讀取數據

DNN結構:

CNN結構:

正常CNN輸入是224 244 3,這里進行縮小成64 64 3,為了提高計算速度

(2)建立CNN(選用VGGNet)

把網絡模型單獨寫成一個模塊,然后直接去調用simpleVGGNet

在simpleVGGNet模塊里面,三部分工作

【第1部分】Conv2D層中,確定data_format類型

(data_format='channels_last')—input_shape = (128,128,3)代表128*128的RGB圖像

(data_format='channels_first')—input_shape = (3,128,128)代表128*128的RGB圖像

keras使用tensorflow作為Backend時,格式是(data_format='channels_first')

或者我們定義一個判斷語句:

【第2部分】特征提取:(卷積+池化)

(1)32—64—128:為了降低pooling壓縮帶來的損失影響,filter個數逐步翻倍
(2)padding:補0策略,為“valid”, “same”
“valid”代表只進行有效的卷積,即對邊界數據不處理。
“same”代表保留邊界處的卷積結果,通常會導致輸出shape與輸入shape相同。
API文檔: 卷積層 - Keras中文文檔
(3)凡是計算層后面,都要加上激活函數

【第3部分】分類識別:(全連接)

FC層:

激活函數softmax:

(3)設定超參

(4)定義損失函數

這里,有一個學習率的衰減,decay=INIT_LR / EPOCHS
看下API文檔,

(5)訓練模型

steps_per_epoch=len(trainX) // BS

它表示是將一個epoch分成多少個batch_size,
如果訓練樣本數N=1000,steps_per_epoch = 10,那么相當于一個batch_size=100

(6)結果

觀察val_loss,


4、對比實驗

(1)第1個對比:添加Batch Normalization(BN,批量標準化層)

API文檔:(批)規范化BatchNormalization - Keras中文文檔

axis:整數,指定當mode=0時規范化的軸。例如輸入是形如(samples,channels,rows,cols)的4D圖像張量,則應設置規范化的軸為1,意味著對每個特征圖進行規范化

NN結構:
在每一個“relu”后,添加BN

例如:

結果:
但是Loss為什么這么大?

猜測是“隨機初始化”的原因,我又重新運行了一次

BN添加前后對比:
更加穩定,提高了val_acc,

(2)第2個對比:添加Truncated Normal(TN,截斷分布)

API文檔: 初始化方法 - Keras中文文檔

NN結構:
在每個卷積層里面,添加kernel_initializer=TruncatedNormal(),stddev=0.01

例如:

結果:

TN添加前后對比:
有的參數添加后,不一定好

(3)第3個對比:添加Dropout

API文檔: 常用層 - Keras中文文檔

NN結構:
有個疑問:在卷積層中,已經是“權重參數共享”,連接的參數本來就不多,再進行Dropout,豈不是更少?(所以一般在Dense層在dropout?)

結果:

Dropout添加前后對比:
更加平穩,但是loss老是跑的比較高……


5、加載模型,進行測試

用“image”文件夾,去做預測

CNN結果:

對比DNN結果:

總結

以上是生活随笔為你收集整理的keras中文文档_【DL项目实战02】图像识别分类——Keras框架+卷积神经网络CNN(使用VGGNet)的全部內容,希望文章能夠幫你解決所遇到的問題。

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