基于深度學(xué)習(xí)LeNet模型的花卉分類方法設(shè)計(jì)_第1頁
基于深度學(xué)習(xí)LeNet模型的花卉分類方法設(shè)計(jì)_第2頁
基于深度學(xué)習(xí)LeNet模型的花卉分類方法設(shè)計(jì)_第3頁
基于深度學(xué)習(xí)LeNet模型的花卉分類方法設(shè)計(jì)_第4頁
基于深度學(xué)習(xí)LeNet模型的花卉分類方法設(shè)計(jì)_第5頁
已閱讀5頁,還剩16頁未讀 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡介

湖南商務(wù)職業(yè)技術(shù)學(xué)院畢業(yè)設(shè)計(jì)

目錄

1引言...............................................................................................................................1

1.1項(xiàng)目背景.............................................................................................................1

1.2開發(fā)環(huán)境與工具.................................................................................................2

1.2.1Python簡介................................................................................................2

1.2.2Tensorflow簡介.........................................................................................2

1.2.3Pytorch簡介...............................................................................................2

1.2.4Python第三方庫簡介................................................................................3

2需求分析.......................................................................................................................4

2.1可行性需求分析.................................................................................................4

2.2數(shù)據(jù)集采集功能分析.........................................................................................5

2.3關(guān)鍵技術(shù)分析.....................................................................................................5

2.3.1數(shù)據(jù)采集技術(shù)...........................................................................................5

2.3.2數(shù)據(jù)集可視化技術(shù)...................................................................................6

2.3.3卷積神經(jīng)網(wǎng)絡(luò)原理...................................................................................6

3數(shù)據(jù)采集.......................................................................................................................6

3.1數(shù)據(jù)集需求分析.................................................................................................6

3.2數(shù)據(jù)集獲取分析.................................................................................................7

3.3編程實(shí)現(xiàn).............................................................................................................8

4數(shù)據(jù)集處理...................................................................................................................8

4.1數(shù)據(jù)集采集.........................................................................................................9

4.2數(shù)據(jù)預(yù)處理.........................................................................................................9

4.3讀取訓(xùn)練集和測試集.......................................................................................10

4.3.1數(shù)據(jù)集測試結(jié)果.....................................................................................10

5模型構(gòu)建及評估分析.................................................................................................11

5.1模型構(gòu)建...........................................................................................................11

5.1.1模型網(wǎng)絡(luò)結(jié)構(gòu).........................................................................................12

5.2模型編譯...........................................................................................................12

I

湖南商務(wù)職業(yè)技術(shù)學(xué)院畢業(yè)設(shè)計(jì)

5.2.1優(yōu)化器設(shè)置.............................................................................................12

5.2.2損失函數(shù)設(shè)置.........................................................................................13

5.3模型訓(xùn)練與調(diào)優(yōu)...............................................................................................13

5.3.1模型訓(xùn)練設(shè)置.........................................................................................13

5.3.2學(xué)習(xí)率調(diào)優(yōu).............................................................................................14

5.3.3batch_size設(shè)置........................................................................................14

5.3.4保留訓(xùn)練權(quán)重.........................................................................................15

5.4模型部署...........................................................................................................15

5.4.1系統(tǒng)前端設(shè)計(jì).........................................................................................15

5.4.2設(shè)計(jì)效果展示及分析.............................................................................16

6小結(jié).............................................................................................................................17

參考資料.........................................................................................................................19

II

湖南商務(wù)職業(yè)技術(shù)學(xué)院畢業(yè)設(shè)計(jì)

基于深度學(xué)習(xí)LeNet模型的花卉分類方法設(shè)計(jì)

1引言

隨著數(shù)字圖像獲取技術(shù)的不斷發(fā)展,圖像數(shù)據(jù)量不斷增加,對于圖像識(shí)別

和分類的需求也越來越高?;ɑ芊诸愖鳛閳D像分類的一個(gè)重要分支,一直以來

都是計(jì)算機(jī)視覺領(lǐng)域的熱門。傳統(tǒng)的花卉分類方法主要依賴于人工提取圖像特

征和手動(dòng)分類,存在著分類準(zhǔn)確度低、效率低、易受主觀因素影響等問題?;?/p>

于深度學(xué)習(xí)LeNet模型[1]的花卉分類方法具有高效、準(zhǔn)確、自動(dòng)化等優(yōu)點(diǎn),可

以幫助我們更好地進(jìn)行花卉分類,進(jìn)一步推動(dòng)圖像識(shí)別和分類技術(shù)的發(fā)展。因

此,學(xué)會(huì)如何利用深度學(xué)習(xí)技術(shù)來提高花卉分類的準(zhǔn)確度和效率具有非常重要

的意義[2]。

1.1項(xiàng)目背景

花卉分類和識(shí)別一直是植物學(xué)和園藝學(xué)的重要領(lǐng)域。在過去的幾十年中,

許多學(xué)者致力于通過人工分類方法對花卉進(jìn)行分類和鑒定。但是,這種方法需

要大量的時(shí)間和精力,而且分類準(zhǔn)確度受到許多因素的影響,如人工鑒定的主

觀性、花卉的生長環(huán)境等等。因此,發(fā)現(xiàn)一種高效、準(zhǔn)確、自動(dòng)化的花卉分類

方法變得越來越重要。

近年來,深度學(xué)習(xí)技術(shù)的發(fā)展為圖像分類和識(shí)別領(lǐng)域帶來了新的機(jī)遇和挑

戰(zhàn)。卷積神經(jīng)網(wǎng)絡(luò)(CNNs)是目前最為流行的深度學(xué)習(xí)模型之一,具有很好的

圖像分類和識(shí)別能力。LeNet是一種最早提出的CNNs模型[3],具有較少的參數(shù)

和計(jì)算量,適合于對小規(guī)模圖像數(shù)據(jù)集進(jìn)行分類和識(shí)別。

基于深度學(xué)習(xí)LeNet模型的花卉分類方法具有高效、準(zhǔn)確、自動(dòng)化等優(yōu)點(diǎn),

可以幫助我們更好地進(jìn)行花卉分類,進(jìn)一步推動(dòng)圖像識(shí)別和分類技術(shù)的發(fā)展。

因此,這次旨在發(fā)現(xiàn)基于深度學(xué)習(xí)LeNet模型的花卉分類方法,并應(yīng)用于花卉

數(shù)據(jù)集上進(jìn)行實(shí)驗(yàn),分析其分類準(zhǔn)確度和效率[4],為植物學(xué)和園藝學(xué)的發(fā)展提

供有力支持。

1

湖南商務(wù)職業(yè)技術(shù)學(xué)院畢業(yè)設(shè)計(jì)

1.2開發(fā)環(huán)境與工具

1.2.1Python簡介

Python是一種高級編程語言,由GuidovanRossum于1989年在荷蘭設(shè)計(jì)和

開發(fā)。Python的設(shè)計(jì)目標(biāo)是提供一種簡單易學(xué)、可讀性強(qiáng)、可擴(kuò)展性強(qiáng)的編程

語言,同時(shí)具備高效率和高可移植性。Python以簡單優(yōu)美的語法、豐富的標(biāo)準(zhǔn)

庫和第三方庫、良好的跨平臺(tái)性和易于調(diào)試等特點(diǎn)而備受歡迎,被廣泛應(yīng)用于

各種領(lǐng)域,如科學(xué)計(jì)算、數(shù)據(jù)分析、Web開發(fā)、人工智能、機(jī)器學(xué)習(xí)等。

Python的語法簡潔清晰,語言結(jié)構(gòu)清晰、易讀易懂,使得初學(xué)者容易上手,

也讓經(jīng)驗(yàn)豐富的程序員更加高效地編寫代碼。Python中使用縮進(jìn)代替大括號(hào)來

表示代碼塊,這種簡單的語法設(shè)計(jì)能夠促進(jìn)代碼的可讀性和可維護(hù)性[5]。

總之,Python是一種簡單、易用、功能強(qiáng)大的編程語言,具有廣泛的應(yīng)用

領(lǐng)域和豐富的資源和社區(qū)支持,逐漸成為了科學(xué)計(jì)算、數(shù)據(jù)分析和機(jī)器學(xué)習(xí)等

領(lǐng)域的首選語言之一。

1.2.2Tensorflow簡介

TensorFlow是Google基于DistBelief進(jìn)行發(fā)展的第二階段人工智能學(xué)習(xí)

系統(tǒng)。Tensor(張量)代表著N維數(shù)組,F(xiàn)low(流)代表著基于數(shù)據(jù)流圖的計(jì)

算,TensorFlow為張量從流圖的一端流動(dòng)到另一端計(jì)算過程。TensorFlow的作

用主要是是將麻煩的數(shù)據(jù)結(jié)構(gòu)發(fā)送到人工智能神經(jīng)網(wǎng)里面進(jìn)行具體分析以及處

理過程的系統(tǒng)。

TensorFlow的用途有很多,比如:能用在語音或圖像識(shí)別等多項(xiàng)機(jī)器學(xué)習(xí)

和深度學(xué)習(xí)領(lǐng)域,它可在小到一部智能手機(jī)、大到數(shù)千臺(tái)數(shù)據(jù)中心服務(wù)器的各

種設(shè)備上運(yùn)行。TensorFlow未來將完全開源,無論誰都是可以應(yīng)用的。

1.2.3Pytorch簡介

PyTorch是一個(gè)基于Python的科學(xué)計(jì)算庫,它主要面向深度學(xué)習(xí),提供了

易于使用的API和工具,以便于構(gòu)建和訓(xùn)練深度神經(jīng)網(wǎng)絡(luò)。PyTorch由Facebook

于2016年發(fā)布,目前已經(jīng)成為了深度學(xué)習(xí)領(lǐng)域最受歡迎的框架之一。

PyTorch的核心是Tensors,它是一個(gè)類似于多維數(shù)組的數(shù)據(jù)結(jié)構(gòu),可以支

持GPU計(jì)算,使得深度神經(jīng)網(wǎng)絡(luò)的訓(xùn)練變得更加高效。除了Tensors,PyTorch

還提供了許多高級功能,如自動(dòng)微分、動(dòng)態(tài)圖和各種優(yōu)化器等。與其它深度學(xué)

習(xí)框架相比,PyTorch更加靈活和易于使用,允許開發(fā)者根據(jù)自己的需求來構(gòu)建

2

湖南商務(wù)職業(yè)技術(shù)學(xué)院畢業(yè)設(shè)計(jì)

深度學(xué)習(xí)模型,并提供了完整的工具鏈來進(jìn)行訓(xùn)練和部署。同時(shí),PyTorch也積

極地發(fā)展和維護(hù)著一個(gè)活躍的社區(qū),以便于用戶可以分享和獲取最新的深度學(xué)

習(xí)技術(shù)和應(yīng)用[6]。

1.2.4Python第三方庫簡介

Python擁有龐大的第三方庫生態(tài)系統(tǒng),這些庫包括各種類型的工具、框架

和模塊,可以幫助開發(fā)者更加高效地開發(fā)和部署應(yīng)用程序。

以下是一些常用的Python第三方庫:

NumPy:提供了高效的多維數(shù)組和矩陣運(yùn)算功能,是科學(xué)計(jì)算和數(shù)據(jù)分析的

基礎(chǔ)庫。

Pandas:提供了高效的數(shù)據(jù)分析和處理功能,支持各種數(shù)據(jù)格式和操作,

如數(shù)據(jù)過濾、排序、聚合等。

Matplotlib:提供了高質(zhì)量的圖形繪制功能,支持各種類型的圖形和樣式。

Scikit-learn:提供了常用的機(jī)器學(xué)習(xí)算法和工具,支持各種類型的數(shù)據(jù)

分析和預(yù)測任務(wù)。

TensorFlow:提供了廣泛的機(jī)器學(xué)習(xí)和深度學(xué)習(xí)工具和算法,支持各種類

型的神經(jīng)網(wǎng)絡(luò)和深度學(xué)習(xí)模型。

PyTorch:提供了靈活和高效的深度學(xué)習(xí)工具和算法,支持各種類型的神經(jīng)

網(wǎng)絡(luò)和深度學(xué)習(xí)模型。

Flask:提供了輕量級的Web應(yīng)用框架,支持各種類型的Web開發(fā)任務(wù),如

路由、模板、數(shù)據(jù)庫等。

Django:提供了完整的Web應(yīng)用框架,支持各種類型的Web開發(fā)任務(wù),如

ORM、模板、表單等。

Requests:提供了方便的HTTP請求和響應(yīng)功能,支持各種類型的HTTP請

求和響應(yīng)處理。

BeautifulSoup:提供了方便的HTML和XML解析功能,支持各種類型的

HTML和XML文檔解析和處理。

總之,Python擁有豐富的第三方庫生態(tài)系統(tǒng),這些庫可以幫助開發(fā)者更加

高效地開發(fā)和部署應(yīng)用程序,提高開發(fā)效率和代碼質(zhì)量。

3

湖南商務(wù)職業(yè)技術(shù)學(xué)院畢業(yè)設(shè)計(jì)

2需求分析

2.1可行性需求分析

1.技術(shù)可行性

Pycharm是一種PythonIDE,帶有一整套可以幫助用戶在使用Python語言

開發(fā)時(shí)提高其效率的工具,pycharm具有簡潔的代碼編輯環(huán)境、強(qiáng)大的智能代碼

輔助功能、豐富的內(nèi)建開發(fā)者工具、完善的Web開發(fā)和數(shù)據(jù)科學(xué)支持(Django、

Flask、JS、notebook、pandas…)同時(shí)使用matplotlib可以很好的展現(xiàn)出各

類圖像及其數(shù)據(jù)。

LeNet模型是深度學(xué)習(xí)的基本模型之一,具有卷積神經(jīng)網(wǎng)絡(luò)的基本結(jié)構(gòu),具

有良好的特征提取能力。通過使用卷積層、池化層等組件,可以在圖像中提取

出有意義的特征信息,從而實(shí)現(xiàn)高效的花卉分類。對于花卉分類任務(wù),已經(jīng)有

許多開源的數(shù)據(jù)集可供使用,這些數(shù)據(jù)集中包含了大量的花卉圖像和相應(yīng)的標(biāo)

簽信息,可以用于訓(xùn)練和評估LeNet模型的性能。

綜上所述,基于深度學(xué)習(xí)LeNet模型的花卉分類技術(shù)具有技術(shù)可行性[7]。

該技術(shù)能夠通過深度學(xué)習(xí)模型對花卉圖像進(jìn)行高效的特征提取和分類,實(shí)現(xiàn)高

精度、高效率的花卉分類任務(wù)。

2.項(xiàng)目可行性

隨著生產(chǎn)力和社會(huì)文明水平的提高,生態(tài)環(huán)境建設(shè)和城鎮(zhèn)綠化建設(shè)也不斷

需要提升,花卉分類可以讓大家知道哪一類鮮花更受人們歡迎?;ɑ芊诸悊栴}

是一個(gè)經(jīng)典的圖像分類問題,目前已經(jīng)有多個(gè)基于深度學(xué)習(xí)的花卉分類方法已

經(jīng)被提出,并且取得了很好的效果。這些方法都是基于卷積神經(jīng)網(wǎng)絡(luò)的架構(gòu),

并且一般都是在LeNet模型的基礎(chǔ)上進(jìn)行了改進(jìn)和優(yōu)化[8]。我們可以通過選擇

合適的數(shù)據(jù)集、使用適當(dāng)?shù)纳疃葘W(xué)習(xí)框架,并對LeNet模型進(jìn)行適當(dāng)?shù)母倪M(jìn)和

優(yōu)化來提高分類準(zhǔn)確率和泛化能力[9]。

3.操作可行性

基于LeNet模型的花卉分類模型的操作可行性很高,主要體現(xiàn)在以下幾個(gè)

方面:

(1)編程語言:Python是深度學(xué)習(xí)領(lǐng)域最流行的編程語言之一,也是實(shí)現(xiàn)

LeNet模型的常用語言,易于掌握和使用。

(2)深度學(xué)習(xí)框架:PyTorch是一款易于使用、高度靈活的深度學(xué)習(xí)框架,

能夠方便地構(gòu)建、訓(xùn)練和優(yōu)化深度學(xué)習(xí)模型,支持自動(dòng)求導(dǎo)和動(dòng)態(tài)圖等功能,

4

湖南商務(wù)職業(yè)技術(shù)學(xué)院畢業(yè)設(shè)計(jì)

也是實(shí)現(xiàn)LeNet模型的常用框架[10]。

(3)數(shù)據(jù)預(yù)處理:數(shù)據(jù)預(yù)處理是深度學(xué)習(xí)中非常重要的一步,但是可以使

用Python中的PIL庫和NumPy庫等進(jìn)行處理,非常方便。

(4)訓(xùn)練和測試:在PyTorch中,可以使用GPU加速訓(xùn)練過程,提高訓(xùn)練

速度。此外,PyTorch提供了豐富的可視化工具,可以對訓(xùn)練和測試過程進(jìn)行實(shí)

時(shí)監(jiān)控和調(diào)整。

(5)模型優(yōu)化:PyTorch提供了多種優(yōu)化算法和正則化方法,可以方便地

進(jìn)行模型優(yōu)化和調(diào)整。

綜上所述,基于LeNet模型的花卉分類模型操作可行性非常高,具備高效、

靈活和易用的特點(diǎn)[11],也是目前深度學(xué)習(xí)領(lǐng)域最常用的技術(shù)之一。

2.2數(shù)據(jù)集采集功能分析

此次項(xiàng)目的數(shù)據(jù)集來源于百度,是通過python在百度搜索關(guān)鍵字“花卉

數(shù)據(jù)集”爬取下載好五類品種的花卉進(jìn)行分類設(shè)計(jì),數(shù)據(jù)清洗后共500條記錄,

以此盡可能保證數(shù)據(jù)可靠性。

爬取到這些花卉分類數(shù)據(jù)集的類別主要有:菊花、郁金香、玫瑰、向日葵、

蒲公英。此次的主要目的是通過這些數(shù)據(jù)來分析哪一類花的置信度會(huì)更高,這

樣我們能根據(jù)卷會(huì)需求量大小從而培育更多這類花卉。其次這些數(shù)據(jù)可以給一

些與花卉商戶提供發(fā)展建議與售賣標(biāo)準(zhǔn)。

2.3關(guān)鍵技術(shù)分析

2.3.1數(shù)據(jù)采集技術(shù)

獲取到花卉分類數(shù)據(jù)集我們需要用到網(wǎng)絡(luò)爬蟲,網(wǎng)絡(luò)爬蟲可分為三類:

聚焦網(wǎng)絡(luò)爬蟲:也叫主題網(wǎng)絡(luò)爬蟲,聚焦網(wǎng)絡(luò)爬蟲是按照之前定義好的主

題有選擇地進(jìn)行網(wǎng)頁爬取的一種爬蟲,聚焦網(wǎng)絡(luò)爬蟲主要應(yīng)用在對特定信息的

爬取中,主要為某一類特定的人群提供服務(wù)。

增量式網(wǎng)絡(luò)爬蟲:指在更新的時(shí)候只更新改變的地方,而未改變的地方則

不更新,增量式網(wǎng)絡(luò)爬蟲在一定程度上能夠保證所爬取的頁面,盡可能是新頁

面。

深層網(wǎng)絡(luò)爬蟲:互聯(lián)網(wǎng)中網(wǎng)頁按存在方式分類,可以分為表層頁面和深層

頁面。所謂的表層頁面,指的是不需要提交表單,使用靜態(tài)的鏈接就能夠到達(dá)

的靜態(tài)頁面;而深層頁面則隱藏在表單后面,不能通過靜態(tài)鏈接直接獲取,是

5

湖南商務(wù)職業(yè)技術(shù)學(xué)院畢業(yè)設(shè)計(jì)

需要提交一定的關(guān)鍵詞之后才能夠獲取得到的頁面。

2.3.2數(shù)據(jù)集可視化技術(shù)

爬取到花卉分類數(shù)據(jù)集后,我們這邊可以讀取花卉分類數(shù)據(jù)集實(shí)現(xiàn)數(shù)據(jù)集

可視化,如圖2-1所示:

圖2-1花卉數(shù)據(jù)集可視化

2.3.3卷積神經(jīng)網(wǎng)絡(luò)原理

在日常生活工作中,我們每天都會(huì)接觸形形色色的數(shù)據(jù)和信息圖(數(shù)據(jù)可

視化)。數(shù)據(jù)可視化是信息的表達(dá)方式,其作用和通過語言傳遞信息并無太大

差別,只是傳遞方式不同而已。數(shù)據(jù)可視化和語言有很多共同之處,人們通過

視覺和聽覺接受語言,而通過視覺獲取可視化信息、編碼,方便人們進(jìn)行認(rèn)知。

卷積神經(jīng)網(wǎng)絡(luò)具有表層學(xué)習(xí)能力[13],能夠按其階層結(jié)構(gòu)對輸入信息進(jìn)行平

移不變分,可以進(jìn)行監(jiān)督學(xué)習(xí)和非監(jiān)督學(xué)習(xí),其隱含層內(nèi)的卷積核參數(shù)共享和

層間連接的稀疏性使得卷積神經(jīng)網(wǎng)絡(luò)能夠以較小的計(jì)算量對格點(diǎn)化特征,例如

像素和音頻進(jìn)行學(xué)習(xí)、有穩(wěn)定的效果且對數(shù)據(jù)沒有額外的特征工程要求,并被

大量應(yīng)用于計(jì)算機(jī)視覺、自然語言處理等領(lǐng)域[12]。

3數(shù)據(jù)采集

3.1數(shù)據(jù)集需求分析

打開瀏覽器,進(jìn)入百度搜索輸入關(guān)鍵字:花卉、花卉分類、花卉識(shí)別。具體

花卉分類數(shù)據(jù)如圖所示,觀察圖3-1,然后點(diǎn)擊頁面下方的分頁按鈕,同時(shí)觀察

URL,發(fā)現(xiàn)URL沒有變化。

6

湖南商務(wù)職業(yè)技術(shù)學(xué)院畢業(yè)設(shè)計(jì)

圖3-1花卉數(shù)據(jù)網(wǎng)址頁面

按F12調(diào)出開發(fā)者工具,刷新頁面,如圖3-2。利用全局搜索工具定位所需

數(shù)據(jù)位置,點(diǎn)擊開發(fā)者工具上面的Headers字段,分析這是個(gè)什么請求,發(fā)現(xiàn)

這個(gè)是一個(gè)POST請求,那我們需要尋找它的的fromdata往下翻找,在最后找

到了表單數(shù)據(jù)FormData。

圖3-2數(shù)據(jù)網(wǎng)址Headers字段頁面

3.2數(shù)據(jù)集獲取分析

定位到我們所需要的數(shù)據(jù)所在的位置,復(fù)制第一個(gè)花卉名稱:郁金香,調(diào)

出全局搜索框搜索,點(diǎn)擊數(shù)據(jù)預(yù)覽Preview,如圖3-3,可以看到我們剛才復(fù)制

的那個(gè)花卉名稱在positionResult下result列表中。接下來我們分析他是以

什么形式的數(shù)據(jù)存放的。顯然這是一個(gè)json數(shù)據(jù)。

7

湖南商務(wù)職業(yè)技術(shù)學(xué)院畢業(yè)設(shè)計(jì)

圖3-3花卉分類網(wǎng)址數(shù)據(jù)集分析

3.3編程實(shí)現(xiàn)

導(dǎo)入所需庫

圖3-4導(dǎo)入所需庫頁面

從花卉數(shù)據(jù)集網(wǎng)站爬取圖片,提取前50頁數(shù)據(jù),關(guān)鍵詞為“花卉”。同時(shí)

導(dǎo)入這些庫,使得我們的程序能夠更好的運(yùn)行,畫圖工具也能更好幫助我們展

示出效果圖,如圖3-5為花卉數(shù)據(jù)集中郁金香(tulips)部分花卉展示圖:

圖3-5郁金香(tuplis)部分?jǐn)?shù)據(jù)集展示圖

4數(shù)據(jù)集處理

該數(shù)據(jù)集是一組花卉相關(guān)的數(shù)據(jù)圖像,接下來我們將對該數(shù)據(jù)集進(jìn)行一個(gè)

8

湖南商務(wù)職業(yè)技術(shù)學(xué)院畢業(yè)設(shè)計(jì)

數(shù)據(jù)預(yù)處理,主要是指對數(shù)據(jù)進(jìn)行清洗、轉(zhuǎn)換、過濾、合并等相關(guān)操作,使得

數(shù)據(jù)更具有可用性和可分析性。數(shù)據(jù)集是數(shù)據(jù)進(jìn)行下一步分析的關(guān)鍵,因此數(shù)

據(jù)集的質(zhì)量和可用性也對數(shù)據(jù)分析的結(jié)果有著至關(guān)重要的作用[14]。

4.1數(shù)據(jù)集采集

數(shù)據(jù)集由花卉分類官方數(shù)據(jù)集爬取下載,本數(shù)據(jù)集由五種類型的花并對應(yīng)

的標(biāo)簽組成,花有五個(gè)種類分別是:菊花、蒲公英、玫瑰、向日葵、郁金香。

圖4-1為flower_data文件中的五種花卉數(shù)據(jù)集

4.2數(shù)據(jù)預(yù)處理

andomResizedCrop(32):隨機(jī)裁剪原始圖像到指定的大小,這里是32x32

像素。

RandomHorizontalFlip():隨機(jī)水平翻轉(zhuǎn)圖像,增加數(shù)據(jù)集的多樣性。

ToTensor():將圖像轉(zhuǎn)化為PyTorch中的Tensor數(shù)據(jù)類型,這是深度學(xué)

習(xí)中常用的數(shù)據(jù)格式。

Normalize((0.5,0.5,0.5),(0.5,0.5,0.5)):對圖像進(jìn)行標(biāo)準(zhǔn)化處理,

將像素值范圍縮放到[-1,1]之間,這是深度學(xué)習(xí)中常用的預(yù)處理方式。

以下為實(shí)現(xiàn)代碼:

圖4-2數(shù)據(jù)集大小預(yù)處理

9

湖南商務(wù)職業(yè)技術(shù)學(xué)院畢業(yè)設(shè)計(jì)

4.3讀取訓(xùn)練集和測試集

data.DataLoader是PyTorch中用于加載數(shù)據(jù)的一個(gè)工具,它能夠自動(dòng)將數(shù)

據(jù)集分成batch,并將batch作為一個(gè)個(gè)tensor輸入到神經(jīng)網(wǎng)絡(luò)中進(jìn)行訓(xùn)練。

具體來說,data.DataLoader可以完成以下幾個(gè)任務(wù):

1、加載數(shù)據(jù)集:data.DataLoader可以自動(dòng)加載數(shù)據(jù)集,并將其轉(zhuǎn)化為

PyTorch所支持的tensor格式。在加載數(shù)據(jù)集的同時(shí),可以指定一些數(shù)據(jù)增強(qiáng)

的操作,如裁剪、翻轉(zhuǎn)等。

2、分割數(shù)據(jù)集:data.DataLoader可以將數(shù)據(jù)集分成若干個(gè)batch,并自

動(dòng)打亂數(shù)據(jù)集的順序,以提高模型的泛化能力??梢酝ㄟ^指定batch_size來控

制每個(gè)batch中包含的樣本數(shù)量。

3、加載數(shù)據(jù)并預(yù)處理:data.DataLoader可以自動(dòng)加載數(shù)據(jù)并進(jìn)行預(yù)處理,

比如對圖片進(jìn)行歸一化、對文本進(jìn)行分詞、對音頻進(jìn)行FFT變換等。

圖4-3對訓(xùn)練集測試集數(shù)據(jù)進(jìn)行多種處理

4.通過使用batch_size來分割數(shù)據(jù)集的樣本劃分展示:

圖4-4訓(xùn)練集測試機(jī)數(shù)據(jù)劃分展示

4.3.1數(shù)據(jù)集測試結(jié)果

花卉數(shù)據(jù)集中測試集和訓(xùn)練集各存放了200張圖片,圖4-5和圖4-6中可

以通過代碼來查看:

1.訓(xùn)練集和測試集大小:

圖4-5訓(xùn)練集圖片個(gè)數(shù)

圖4-6測試集圖片個(gè)數(shù)

10

湖南商務(wù)職業(yè)技術(shù)學(xué)院畢業(yè)設(shè)計(jì)

2.查看訓(xùn)練數(shù)據(jù)集劃分部分花卉圖內(nèi)容:

圖4-7訓(xùn)練數(shù)據(jù)集花卉劃分結(jié)果展示圖

5模型構(gòu)建及評估分析

5.1模型構(gòu)建

下面是基于LeNet模型的花卉分類模型的構(gòu)建設(shè)計(jì):

(1)輸入數(shù)據(jù):花卉分類任務(wù)的輸入是一張圖片,可以通過預(yù)處理將圖片

轉(zhuǎn)換為固定大小的矩陣,如32x32。

(2)卷積層:卷積層是LeNet模型的核心部分,可以提取圖像的局部特征。

可以采用多個(gè)卷積層進(jìn)行特征提取,每個(gè)卷積層可以包含多個(gè)卷積核和激活函

數(shù)。在花卉分類任務(wù)中,卷積層可以提取花卉的形態(tài)和顏色等特征。

(3)池化層:池化層可以降低卷積層的輸出維度,減少參數(shù)數(shù)量,同時(shí)還

可以提高特征的魯棒性。在花卉分類任務(wù)中,可以采用最大池化層進(jìn)行特征降

維。

(4)全連接層:全連接層可以將特征圖轉(zhuǎn)換為一維向量,然后通過多個(gè)全

連接層進(jìn)行分類。在花卉分類任務(wù)中,可以采用多個(gè)全連接層對花卉進(jìn)行分類,

每個(gè)全連接層都需要使用激活函數(shù)進(jìn)行非線性變換。

(5)輸出層:輸出層是模型的最后一層,通常使用softmax函數(shù)進(jìn)行分類。

在花卉分類任務(wù)中,可以使用輸出層將花卉分為多個(gè)類別。

11

湖南商務(wù)職業(yè)技術(shù)學(xué)院畢業(yè)設(shè)計(jì)

(6)損失函數(shù):在模型訓(xùn)練過程中,需要選擇合適的損失函數(shù)進(jìn)行優(yōu)化。

常用的損失函數(shù)有交叉熵?fù)p失函數(shù)和均方誤差損失函數(shù)等。

(7)優(yōu)化器:優(yōu)化器可以根據(jù)損失函數(shù)的梯度更新模型的參數(shù),以提高模

型的訓(xùn)練效率和準(zhǔn)確性。常用的優(yōu)化器有隨機(jī)梯度下降(SGD)、Adam等。

通過以上的模型構(gòu)建,可以得到基于LeNet模型的花卉分類模型。在實(shí)際

應(yīng)用中,可以根據(jù)實(shí)際情況對模型進(jìn)行調(diào)整和優(yōu)化,以達(dá)到更好的分類效果。

5.1.1模型網(wǎng)絡(luò)結(jié)構(gòu)

LeNet模型包含兩個(gè)卷積層和三個(gè)全連接層組成,輸入的圖片經(jīng)過兩個(gè)卷積

層和兩個(gè)池化層的處理,卷積核大小為5×5,每個(gè)卷積層輸出的通道數(shù)分別為16

和32。接著經(jīng)過三個(gè)全連接層,最后輸出分類結(jié)果。在此次模型中,本文采用

了Relu函數(shù)作為激活函數(shù),損失函數(shù)使用交叉熵函數(shù),代碼如圖5-1所示:

圖5-1模型構(gòu)建

5.2模型編譯

5.2.1優(yōu)化器設(shè)置

在基于LeNet模型的花卉分類模型中,我們可以選擇不同的優(yōu)化器進(jìn)行訓(xùn)

練。優(yōu)化器的作用是更新模型中的參數(shù),使得損失函數(shù)達(dá)到最小值。常見的優(yōu)

化器包括SGD、Adam、Adagrad等。在基于LeNet模型實(shí)現(xiàn)花卉分類實(shí)現(xiàn)優(yōu)化器

代碼如圖5-3所示:

12

湖南商務(wù)職業(yè)技術(shù)學(xué)院畢業(yè)設(shè)計(jì)

圖5-2模型優(yōu)化器設(shè)置

5.2.2損失函數(shù)設(shè)置

在基于LeNet模型的花卉分類模型中,損失函數(shù)的作用是衡量模型預(yù)測值

與真實(shí)值之間的差異,從而指導(dǎo)模型的優(yōu)化過程。常見的損失函數(shù)包括交叉熵、

均方誤差等。在基于LeNet模型實(shí)現(xiàn)花卉分類實(shí)現(xiàn)損失函數(shù)設(shè)置代碼如圖5-3

所示:

圖5-3模型損失函數(shù)設(shè)置

5.3模型訓(xùn)練與調(diào)優(yōu)

5.3.1模型訓(xùn)練設(shè)置

在基于LeNet模型的花卉分類模型中將訓(xùn)練集中的樣本輸入到模型中,計(jì)

算損失值,然后反向傳播求梯度,再根據(jù)梯度更新模型參數(shù)。訓(xùn)練過程中還需

要對模型在驗(yàn)證集上的性能進(jìn)行監(jiān)測,以避免過擬合。訓(xùn)練的目的是通過不斷

調(diào)整模型參數(shù)來提高模型的分類準(zhǔn)確率,代碼如圖5-4所示:

圖5-4模型訓(xùn)練代碼圖

由圖5-4中的代碼運(yùn)行可得到模型訓(xùn)練過程展示:

13

湖南商務(wù)職業(yè)技術(shù)學(xué)院畢業(yè)設(shè)計(jì)

圖5-5模型訓(xùn)練過程展示圖

5.3.2學(xué)習(xí)率調(diào)優(yōu)

在深度學(xué)習(xí)中,學(xué)習(xí)率是控制模型權(quán)重和偏差更新速度的重要超參數(shù)之一。

如果學(xué)習(xí)率設(shè)置不當(dāng),可能會(huì)導(dǎo)致模型無法收斂或者過度擬合等問題。因此,

需要對學(xué)習(xí)率進(jìn)行優(yōu)化。Adam優(yōu)化器可以自適應(yīng)地調(diào)整學(xué)習(xí)率,lr參數(shù)表示初

始學(xué)習(xí)率的大小。在訓(xùn)練過程中,始終使用固定的學(xué)習(xí)率來更新模型參數(shù),這

種方法的優(yōu)點(diǎn)是簡單易用,此處lr為0.0002。

圖5-6學(xué)習(xí)率的大小

5.3.3batch_size設(shè)置

batch_size是指一次性將多少個(gè)數(shù)據(jù)樣本輸入到神經(jīng)網(wǎng)絡(luò)中進(jìn)行訓(xùn)練。在

基于LeNet模型的花卉分類模型中,batch_size的設(shè)置需要考慮到計(jì)算資源和

內(nèi)存的限制。一般來說,batch_size越大,訓(xùn)練速度越快,但需要更大的內(nèi)存。

通常的做法是盡可能使用最大的batch_size,以達(dá)到更快的訓(xùn)練速度,但要確

保不會(huì)出現(xiàn)錯(cuò)誤,這里設(shè)置為1:

圖5-7batch_size設(shè)置

14

湖南商務(wù)職業(yè)技術(shù)學(xué)院畢業(yè)設(shè)計(jì)

5.3.4保留訓(xùn)練權(quán)重

在深度學(xué)習(xí)中,訓(xùn)練出一個(gè)好的模型是非常困難的,所以保存訓(xùn)練得到的

權(quán)重是非常重要的。訓(xùn)練得到的權(quán)重可以被用于后續(xù)的模型推斷或繼續(xù)訓(xùn)練。

使用PyTorch內(nèi)置的torch.save函數(shù)將模型權(quán)重保存到文件中,以便以后使用。

以下是實(shí)現(xiàn)代碼:

圖5-8torch.save函數(shù)將模型權(quán)重保存到文件中

可以將模型的state_dict保存到文件中,可以使用torch.load函數(shù)從文

件中加載模型權(quán)重。如圖5-9所示:

圖5-9使用torch.load函數(shù)從文件中加載模型權(quán)重

5.4模型部署

5.4.1系統(tǒng)前端設(shè)計(jì)

打開文件夾,圖像如圖5-10所示,設(shè)計(jì)功能:

一、先進(jìn)入花卉分類文件夾,選擇一張花卉圖像;

二、打開flower_photos,隨機(jī)抽取一張花卉進(jìn)行種類識(shí)別;

三、等待識(shí)別結(jié)果,查看其預(yù)測值。最終結(jié)果顯示花卉以及各類花卉預(yù)測結(jié)

果,識(shí)別完成。如下圖所示:

15

湖南商務(wù)職業(yè)技術(shù)學(xué)院畢業(yè)設(shè)計(jì)

圖5-10系統(tǒng)前端設(shè)計(jì)圖

5.4.2設(shè)計(jì)效果展示及分析

測試運(yùn)行出所有代碼,輸入roses(玫瑰),可得出花卉分類中roses(玫瑰)

的置信度(conf)為0.582,如圖5-11所示:

圖5-11花卉數(shù)據(jù)集中玫瑰置信度展示頁面

同時(shí),測試完所有代碼,我們可得到玫瑰花以及其他花卉的置信度(conf)結(jié)

果:

16

湖南商務(wù)職業(yè)技術(shù)學(xué)院畢業(yè)設(shè)計(jì)

圖5-12各類花卉置信度結(jié)果圖

由5-12中我們已經(jīng)得到了玫瑰花以及其他花卉的置信度(conf)大小,為了

更直觀到roses(玫瑰)預(yù)測出來的可能性更大,我們可以從圖5-12中看出來。

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲(chǔ)空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

最新文檔

評論

0/150

提交評論