卷積網絡項目:實現識別鮮花四分類對比LeNet5、VGG16、ResNet18、ResNet34分類網絡

卷積四分類項目

Gitee傳送門

分類目標選取

鮮花

  • 杏花 apricot_blossom
  • 桃花 peach_blossom
  • 梨花 pear_blossom
  • 梅花 plum_blossom

模型選擇

卷積

  • LeNet5
  • VGG16
  • ResNet18
  • ResNet34

以圖搜圖

獲取相似度前10的搜圖結果

數據清洗

鮮花四分類

刪除非圖片文件

image.png

刪除重復圖片

image.png
image.png
image.png
image.png
image.png

整理數據集

鮮花四分類

每種類別數據:訓練500、測試50、預測10
總訓練集:2500
總測試集:250
總預測集:40

訓練模型

報錯

ValueError: num_samples should be a positive integer value, but got num_samples=0

換了電腦后,數據集的存儲位置不同,更換路徑后解決

RuntimeError: Input type (torch.cuda.FloatTensor) and weight type (torch.FloatTensor) should be the same

原因:錯誤內容就在類型不匹配,根據報錯內容可以看出Input type為torch.FloatTensor(CPU數據類型),而weight type(即網絡權重參數這些)為torch.cuda.FloatTensor(GPU數據類型)
方案:將輸入類型轉變為GPU類型
輸入數據和網絡都切換到cuda,但問題仍存在
檢查網絡,修改模型隱藏層初始化方式后,解決了問題

鮮花

v1:LeNet5:bn

輸出4分類

image.png
image.png
image.png

v2:VGG16:bn

數據太差,提前中斷了訓練
image.png
image.png
image.png

v3:ResNet18:bn

輸出4分類
f4_v3:32x32

image.png
image.png
image.png
準確率仍上不去,預估增大迭代次數,準確率能慢慢提升

f4_v3.3:224x224

image.png
image.png
過擬合前最佳:
image.png
測試數據出現過擬合現象,考慮減小數據大小

f4_v3.4:112x112

image.png
image.png
過擬合前最佳:
image.png
再次出現過擬合,提前中斷了訓練

f4_v3.5:56x56

image.png
image.png
過擬合前最佳:
image.png
再次出現過擬合,提前中斷了訓練
結論:圖片縮放大小無法解決過擬合問題

f4_v3.6:32x32,減4個殘差塊

image.png
image.png
測試集過擬合前
image.png
最佳
image.png

f4_v3.6:32x32,減4個殘差塊,transforms減Norm

image.png
image.png
測試集過擬合前
image.png
最佳
image.png

v4:ResNet34:bn

輸出4分類

image.png
image.png
image.png
預估:增加迭代次數,可能能緩慢提升準確率

以圖搜圖

報錯

ValueError: Expected more than 1 value per channel when training, got input size torch.Size([1, 512, 1, 1])

image.png
LeNet5模型能正常運行,ResNet18和ResNet34模型報錯
image.png正常運行
image.png報錯
image.png報錯
原因:模型中含有nn.BatchNorm層,訓練時需要batch_size大于1,來計算當前batch的running mean and std。自定義數據數量除以batch_size后剛好余1,就發生了上述報錯
方案1:在pytorch的Dataloader中設置drop_last=True即可,這樣會忽略最后一個batch
嘗試在數據集增加drop_last=True,再次訓練,尚未解決這個問題
方案2:在添加數據前增加model.eval()
代碼原本就有這個語句,仍存在這個問題
方案3:修改訓練模型數據預處理中Resize大小32–>224,問題解決

搜圖結果

v1:LeNet5:bn

image.png
image.png
沒有一個是正確分類

v3:ResNet18:bn

f4_v3:32x32

image.png
image.png
沒有一個是正確分類,且相似度差距很大

f4_v3.3:224x224

過擬合前最佳:
image.png
image.png
預測最佳類別中top10圖片和原圖類別相同,但與top1圖片與原圖相似度不是0
原因:檢索庫圖片根據特征處理、帶參數的模型生成對應的特征文件,更換特征處理方式或參數后,生成的特征文件有所不同,所以計算相似度,哪怕是原圖也不為0
解決方案:更換特征處理方式或參數后,重新初始化特征文件,再進行預測,解決了這個問題

v4:ResNet34:bn

f4_v4:32x32

image.png
image.png
沒有一個是正確分類,且相似度差距很大

f4_v4.3:224x224

image.png
image.png
出現了一個正確分類,由于時間問題,v4.3版沒有完成足夠的訓練,不確定迭代后的數據能否達到預期效果

特征處理

feat_v3.3.0:tensor

image.png

feat_v3.3.1:tensor+Resize56

image.png

feat_v3.3.2:tensor+Resize56+Norm

image.png

feat_v3.3.3:tensor+crop+Resize56

image.png

feat_v3.3.4:tensor+Resize+crop+Resize56

image.png

feat_v3.3.5:tensor+Resize+crop+Resize224

image.png

feat_v3.3.6:tensor+Resize+crop+Resize112

image.png

feat_v3.3.7:tensor+Resize+crop+Resize32

image.png

總結

feat_v3.3.4.txt版本的特征處理效果最好
特征處理方式:tensor+Resize600+crop400+Resize56

搜圖效果

相似度前10的結果,top1是原圖,6張正確類別花,3張錯誤類別花
原因:這四類花本身比較相似,不便于學習;也可能是數據量不夠多,訓練效果不夠好;也可能迭代的次數不夠多,模型沒有訓練到足夠好的效果
20240227002214_rec_.gif

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/web/12361.shtml
繁體地址,請注明出處:http://hk.pswp.cn/web/12361.shtml
英文地址,請注明出處:http://en.pswp.cn/web/12361.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

【JavaWeb】前后端分離SpringBoot項目快速排錯指南

1 發起業務請求 打開瀏覽器開發者工具,同時顯示網絡(Internet)和控制臺(console) 接著,清空控制臺和網絡的內容,如下圖 然后,點擊你的業務按鈕,發起請求。 首先看控制臺…

【C#進階】簡單數據結構類

簡單數據結構類 文章目錄 1、Arraylist1、ArrayList的本質2、聲明3、增刪查改4、裝箱拆箱思考 背包售賣 2、Stack1、Stack的本質2、聲明3、增取查改4、遍歷思考 計算一個數的二進制 3、Queue1、Queue的本質2、聲明3、增取查改4、遍歷思考 每隔一段時間打印一條消息 4、Hashtab…

Json類型轉換異常

class com.alibaba.fastjson.JSONObject cannot be cast to class com.xxx.xxOrder (com.alibaba.fastjson.JSONObject and com.xxx.xxOrder are in unnamed module of loader org.springframework.boot.loader.LaunchedURLClassLoader 25b5c5e3 大概率是因為 JSON.parseObjec…

Yocto學習筆記(三)配置Busybox

1 Busybox介紹 BusyBox 是一個開源的、輕量級的 Unix 工具箱,它集成了許多標準 Unix 工具的精簡版本。它被設計用來運行在資源受限的環境中,例如嵌入式系統或者啟動盤。BusyBox 將多個標準 Unix 實用工具整合到一個可執行文件中,這些工具包括…

如何加密保護U盤?U盤加密方法盤點

U盤是目前最常用的移動存儲設備,可以幫助我們存儲大量數據。而為了保護數據安全,我們需要加密保護U盤。下面我們就來盤點一下U盤加密的方法。 BitLocker加密 BitLocker是Windows的一種磁盤保護工具,通過加密整個磁盤來保護數據,同…

基于Springboot的校園疫情防控信息管理系統(有報告)。Javaee項目,springboot項目。

演示視頻: 基于Springboot的校園疫情防控信息管理系統(有報告)。Javaee項目,springboot項目。 項目介紹: 采用M(model)V(view)C(controller)三層…

react生命周期及用法

React生命周期是React組件在掛載、更新和卸載過程中的一系列方法的集合。通過生命周期方法,我們可以在不同階段執行特定的操作,例如初始化組件、更新狀態、渲染UI等。 React生命周期分為三個階段:掛載階段、更新階段和卸載階段。以下是React…

Vscode編輯器 js 輸入log自動補全

最近換了新電腦,新下載了Vscode,記錄一下設置項。 Vscode 版本 想要的效果 js文件中輸入log(點擊tab鍵),自動補全為 console.log() Vscode 文件》首選項》設置 搜索:snippets Emmet: Show Suggestions…

暗區突圍TWITCH掉寶領測試資格后,steam激活顯示是無效激活碼

自《暗區突圍》測試啟動以來,吸引了大量玩家關注,特別是通過在Twitch平臺上觀看直播即可獲得測試資格的活動,更是掀起了熱潮。然而,部分玩家在成功獲得激活碼后,在Steam平臺激活時遭遇了“無效激活碼”的問題。本文將提…

nginx 配置域名SSL證書HTTPS服務

下載 上傳根目錄 /home/wwwroot/xx.com/ssl 從新執行 添加域名命令 選擇添加SSL SSL Certificate file: 填寫 完整目錄 PEM文件地址 SSL Certificate Key file:填寫 完整目錄 key文件地址

python 對矩陣與矩陣之間對應位置的元素,做softmax操作,代碼實戰

1.對矩陣中對應位置的元素,做softmax 對于一個向量,softmax函數會對其中每一個元素進行指數運算,然后除以所有元素指數和的結果。當將其應用到多個矩陣的相應位置上時,我們實際上是在對每個位置的一組數(從各個矩陣的同…

45.WEB滲透測試-信息收集-域名、指紋收集(7)

免責聲明:內容僅供學習參考,請合法利用知識,禁止進行違法犯罪活動! 內容參考于: 易錦網校會員專享課 上一個內容:計算機王-CSDN博客 WEB指紋:Web指紋也叫web應用指紋。由于所使用的工具、技術…

PHP 自提時間

前端: 后臺設置: 代碼: public function getBusinessHour(){// 需求單門店$data (new StoreModel())->limit(1)->select()->toArray();$days explode(,, $data[0][shop_hours]);$businessHours $days[1];// 使用 explode 分割字符串,獲取開始和結束時…

ListView[new]

activity_main.xml <?xml version"1.0" encoding"utf-8"?> <LinearLayout xmlns:android"http://schemas.android.com/apk/res/android"android:layout_height"match_parent"android:layout_width"match_parent"…

服務器租用中包含哪些?

服務器在目前的互聯網社會中起著十分重要的作用&#xff0c;服務器是網絡業務部署的重要載體&#xff0c;越來越多的企業和用戶選擇租用服務器業務來減少整體的成本&#xff0c;那么服務器租用中主要都包含哪些呢&#xff1f;接下來小編就來介紹一些其中的內容吧&#xff01; 首…

nginx 發布靜態資源

一. nginx 發布靜態資源 在nginx中nginx.conf配置文件中添加內容如下&#xff1a; server {listen 90;server_name localhost;# 配置靜態資源文件&#xff0c;就可以訪問了location / {root /home/fooie-shop;index index.html;}# 配置音頻和圖片資源location /imoo…

企業內部文化社區究竟有哪些好處?

首先&#xff0c;我們來了解下&#xff0c;企業內耗是什么? 在企業文化管理中&#xff0c;內耗是一個常見的問題&#xff0c;它會影響企業的團隊協作、執行效率和績效表現。在2023《哈佛商業評論》中國年會上&#xff0c;北大匯豐商學院管理實踐教授陳瑋分享了他對組織管理的…

馮喜運:5.14今日黃金原油漲跌走勢分析操作建議

【黃金消息面分析】&#xff1a;本周黃金市場將迎來關鍵的美國通脹數據&#xff0c;包括周二的生產者價格指數(PPI)和周三的消費者物價指數(CPI)。這些數據對美聯儲的政策路徑至關重要&#xff0c;可能會影響市場對利率調整的預期。目前&#xff0c;現貨黃金價格小幅上漲&#…

使用java.io庫序列化Java對象

在我們使用諸如Redis這類緩存系統時&#xff0c;我們往往會存在如下需求&#xff1a;將Java對象保存到Redis緩存中&#xff0c;然后在其他機器上還原回來。 Json方案 我們可以引入Json庫等方式&#xff0c;將Java對象序列化為Json字符串來實現這個目的&#xff0c;但是這樣的…

《四》系統模塊整體功能關聯與實現

在上一篇里&#xff0c;我們完成了動作的創建&#xff0c;那么這一次&#xff0c;我們把它加載到界面上&#xff0c;把需要是實現的動作都加上。 MyWord::MyWord(QWidget *parent): QMainWindow(parent) {mdiAreanew QMdiArea;mdiArea->setHorizontalScrollBarPolicy(Qt::S…