日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當(dāng)前位置: 首頁 > 人工智能 > 卷积神经网络 >内容正文

卷积神经网络

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

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

版權(quán)聲明:小博主水平有限,希望大家多多指導(dǎo)。

目錄:

【使用傳統(tǒng)DNN】

BG大龍:【DL項(xiàng)目實(shí)戰(zhàn)02】圖像分類——Keras框架+使用傳統(tǒng)神經(jīng)網(wǎng)絡(luò)DNN?zhuanlan.zhihu.com

【使用卷積神經(jīng)網(wǎng)絡(luò)CNN】

BG大龍:【DL項(xiàng)目實(shí)戰(zhàn)02】圖像識(shí)別分類——Keras框架+卷積神經(jīng)網(wǎng)絡(luò)CNN(使用VGGNet)?zhuanlan.zhihu.com

1、數(shù)據(jù)集情況

2、任務(wù)目標(biāo)

3、流程中的注意點(diǎn)

(1)讀取數(shù)據(jù)

(2)建立CNN(選用VGGNet)

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

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

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

(3)設(shè)定超參

(4)定義損失函數(shù)

(5)訓(xùn)練模型

(6)結(jié)果

4、對(duì)比實(shí)驗(yàn)

(1)第1個(gè)對(duì)比:添加Batch Normalization(BN,批量標(biāo)準(zhǔn)化層)

(2)第2個(gè)對(duì)比:添加Truncated Normal(TN,截?cái)喾植?#xff09;

(3)第3個(gè)對(duì)比:添加Dropout

5、加載模型,進(jìn)行測(cè)試


1、數(shù)據(jù)集情況


2、任務(wù)目標(biāo)

當(dāng)輸入“image”時(shí)候,能否正確識(shí)別,識(shí)別的acc是多少


3、流程中的注意點(diǎn)

(1)讀取數(shù)據(jù)

DNN結(jié)構(gòu):

CNN結(jié)構(gòu):

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

(2)建立CNN(選用VGGNet)

把網(wǎng)絡(luò)模型單獨(dú)寫成一個(gè)模塊,然后直接去調(diào)用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時(shí),格式是(data_format='channels_first')

或者我們定義一個(gè)判斷語句:

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

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

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

FC層:

激活函數(shù)softmax:

(3)設(shè)定超參

(4)定義損失函數(shù)

這里,有一個(gè)學(xué)習(xí)率的衰減,decay=INIT_LR / EPOCHS
看下API文檔,

(5)訓(xùn)練模型

steps_per_epoch=len(trainX) // BS

它表示是將一個(gè)epoch分成多少個(gè)batch_size,
如果訓(xùn)練樣本數(shù)N=1000,steps_per_epoch = 10,那么相當(dāng)于一個(gè)batch_size=100

(6)結(jié)果

觀察val_loss,


4、對(duì)比實(shí)驗(yàn)

(1)第1個(gè)對(duì)比:添加Batch Normalization(BN,批量標(biāo)準(zhǔn)化層)

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

axis:整數(shù),指定當(dāng)mode=0時(shí)規(guī)范化的軸。例如輸入是形如(samples,channels,rows,cols)的4D圖像張量,則應(yīng)設(shè)置規(guī)范化的軸為1,意味著對(duì)每個(gè)特征圖進(jìn)行規(guī)范化

NN結(jié)構(gòu):
在每一個(gè)“relu”后,添加BN

例如:

結(jié)果:
但是Loss為什么這么大?

猜測(cè)是“隨機(jī)初始化”的原因,我又重新運(yùn)行了一次

BN添加前后對(duì)比:
更加穩(wěn)定,提高了val_acc,

(2)第2個(gè)對(duì)比:添加Truncated Normal(TN,截?cái)喾植?#xff09;

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

NN結(jié)構(gòu):
在每個(gè)卷積層里面,添加kernel_initializer=TruncatedNormal(),stddev=0.01

例如:

結(jié)果:

TN添加前后對(duì)比:
有的參數(shù)添加后,不一定好

(3)第3個(gè)對(duì)比:添加Dropout

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

NN結(jié)構(gòu):
有個(gè)疑問:在卷積層中,已經(jīng)是“權(quán)重參數(shù)共享”,連接的參數(shù)本來就不多,再進(jìn)行Dropout,豈不是更少?(所以一般在Dense層在dropout?)

結(jié)果:

Dropout添加前后對(duì)比:
更加平穩(wěn),但是loss老是跑的比較高……


5、加載模型,進(jìn)行測(cè)試

用“image”文件夾,去做預(yù)測(cè)

CNN結(jié)果:

對(duì)比DNN結(jié)果:

總結(jié)

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

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯(cuò),歡迎將生活随笔推薦給好友。