pyTorch-遷移學習-學習率衰減-四種天氣圖片多分類問題

目錄

1.導包

 2.加載數據、拼接訓練、測試數據的文件夾路徑

 3.數據預處理

3.1 transforms.Compose數據轉化

3.2分類存儲的圖片數據創建dataloader 

torchvision.datasets.ImageFolder

torch.utils.data.DataLoader

4.加載預訓練好的模型(遷移學習) 

4.1固定、修改預訓練好的模型參數 

4.2模型拷到GPU上 

4.3定義優化器與損失函數 

4.4學習率衰減 

4.5定義訓練過程 

5.測試運行 

6.可視化 :訓練與測試的損失函數、準確率


#學習率衰減屬于超參數設。在深度學習中,超參數是指在模型訓練之前設定的參數,它們不會在訓練過程中自動學習到,而是需要人為設置的。
#學習率衰減是一種動態調整學習率的方法,通過在學習過程中逐漸減少學習率,以提高模型的訓練效果和穩定性。
#具體來說,學習率衰減是通過在訓練過程中逐漸減小學習率來實現的,這有助于在訓練初期快速收斂,同時在后期避免過大的波動,從而更接近最優解 

#學習率衰減有兩種方式,隨著訓練次數的增加,學習率逐漸變小

#學習率衰減,在訓練過程中使用,   測試過程中不需要使用

1.導包

import torch 
import torch.nn as nn
import torch.nn.functional as F
import torch.optim as optim
import numpy as np
import matplotlib.pyplot as pltimport torchvision
from torchvision import transformsimport os

 2.加載數據、拼接訓練、測試數據的文件夾路徑

base_dir = './dataset'
train_dir = os.path.join(base_dir, 'train')
test_dir = os.path.join(base_dir, 'test')

 3.數據預處理

3.1 transforms.Compose數據轉化

transform = transforms.Compose([# 統一縮放到96 * 96transforms.Resize((96, 96)),transforms.ToTensor(),# 正則化transforms.Normalize(mean=[0.5, 0.5, 0.5], std=[0.5, 0.5, 0.5])
])

3.2分類存儲的圖片數據創建dataloader 

torchvision.datasets.ImageFolder

torch.utils.data.DataLoader

train_ds = torchvision.datasets.ImageFolder(train_dir, transform=transform)
test_ds = torchvision.datasets.ImageFolder(test_dir, transform=transform)batch_size = 32
train_dl = torch.utils.data.DataLoader(train_ds, batch_size=batch_size, shuffle=True, drop_last=True)
test_dl = torch.utils.data.DataLoader(test_ds, batch_size=batch_size)

4.加載預訓練好的模型(遷移學習) 

# 加載預訓練好的模型
model = torchvision.models.vgg16(pretrained=True)

model
VGG((features): Sequential((0): Conv2d(3, 64, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1))(1): ReLU(inplace=True)(2): Conv2d(64, 64, kernel_size=(3, 3), stride=(1, 1), padding=(1, 

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

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

相關文章

第十四屆藍橋杯大賽軟件賽國賽Python大學B組題解

文章目錄 彈珠堆放劃分偶串交易賬本背包問題翻轉最大階梯最長回文前后綴貿易航線困局 彈珠堆放 遞推式 a i a i ? 1 i a_ia_{i-1}i ai?ai?1?i, n 20230610 n20230610 n20230610非常小,直接模擬 答案等于 494 494 494 劃分 因為總和為 1 e 6 1e6…

Python 和 JavaScript兩種語言的相似部分-由DeepSeek產生

Python 和 JavaScript 作為兩種流行的編程語言,雖然在設計目標和應用場景上有差異(Python 偏向后端和腳本,JavaScript 偏向前端和動態交互),但它們的語法存在許多相似之處。以下是兩者在語法上的主要共同點及對比&…

改善 Maven 的依賴性

大家好,這里是架構資源棧!點擊上方關注,添加“星標”,一起學習大廠前沿架構! 建議使用mvn dependency:analyze命令來擺脫已聲明但未使用的依賴項: 還有另一個用例, mvn dependency:analyze 它可…

【SQL】子查詢詳解(附例題)

子查詢 子查詢的表示形式為:(SELECT 語句),它是IN、EXISTS等運算符的運算數,它也出現于FROM子句和VALUES子句。包含子查詢的查詢叫做嵌套查詢。嵌套查詢分為相關嵌套查詢和不想關嵌套查詢 WHERE子句中的子查詢 比較運算符 子查詢的結果是…

Stable Diffusion 擴展知識實操整合

本文的例子都是基于秋葉整合包打開的webui實現的 一、ADetailer——改善人臉扭曲、惡心 After detailer插件可以自動檢測生成圖片的人臉,針對人臉自動上蒙版,自動進行重繪,整個流程一氣呵成,因此可以避免許多重復的操作。除此之…

freertos內存管理簡要概述

概述 內存管理的重要性 在嵌入式系統中,內存資源通常是有限的。合理的內存管理可以確保系統高效、穩定地運行,避免因內存泄漏、碎片化等問題導致系統崩潰或性能下降。FreeRTOS 的內存管理機制有助于開發者靈活地分配和釋放內存,提高內存利用…

按規則批量修改文件擴展名、刪除擴展名或添加擴展名

文件的擴展名是多種多樣的,有些不同文件的擴展名之間相互是可以直接轉換的。我們工作當中最常見的就是 doc 與 docx、xls 與 xlsx、jpg 與 jpeg、html 與 htm 等等,這些格式在大部分場景下都是可以相互轉換 能直接兼容的。我們今天要介紹的就是如何按照一…

熱門面試題第15天|最大二叉樹 合并二叉樹 驗證二叉搜索樹 二叉搜索樹中的搜索

654.最大二叉樹 力扣題目地址(opens new window) 給定一個不含重復元素的整數數組。一個以此數組構建的最大二叉樹定義如下: 二叉樹的根是數組中的最大元素。左子樹是通過數組中最大值左邊部分構造出的最大二叉樹。右子樹是通過數組中最大值右邊部分構造出的最大…

MySQL學習筆記7【InnoDB】

Innodb 1. 架構 1.1 內存部分 buffer pool 緩沖池是主存中的第一個區域,里面可以緩存磁盤上經常操作的真實數據,在執行增刪查改操作時,先操作緩沖池中的數據,然后以一定頻率刷新到磁盤,這樣操作明顯提升了速度。 …

RNN、LSTM、GRU匯總

RNN、LSTM、GRU匯總 0、論文匯總1.RNN論文2、LSTM論文3、GRU4、其他匯總 1、發展史2、配置和架構1.配置2.架構 3、基本結構1.神經元2.RNN1. **RNN和前饋網絡區別:**2. 計算公式:3. **梯度消失:**4. **RNN類型**:(查看發展史)5. **…

django數據遷移操作受阻

錯誤信息: django.db.utils.OperationalError: (1227, Access denied; you need (at least one of) the SYSTEM_VARIABLES_ADMIN or SESSION_VARIABLES_ADMIN privilege(s) for this operation)根據錯誤信息分析,該問題是由于MySQL用戶 缺乏SYSTEM_VARI…

WinForm真入門(13)——ListBox控件詳解

WinForm ListBox 詳解與案例 一、核心概念 ?ListBox? 是 Windows 窗體中用于展示可滾動列表項的控件,支持單選或多選操作,適用于需要用戶從固定數據集中選擇一項或多項的場景?。 二、核心屬性 屬性說明?Items?管理列表項的集合,支持動…

局域網內文件共享的實用軟件推薦

軟件介紹 在日常辦公、學習或家庭網絡環境里,局域網內文件共享是個常見需求。有一款免費的局域網共享軟件非常適合這種場景。 這款局域網共享軟件使用起來非常簡單,不需要安裝,直接點擊就能使用。 它的操作流程簡單易懂,用戶只要…

ViewModel vs AndroidViewModel:核心區別與使用場景詳解

在 Android 的 MVVM 架構中,ViewModel 和 AndroidViewModel 都是用于管理 UI 相關數據的組件,但二者有一些關鍵區別: 1. ViewModel 基本用途:用于存儲和管理與 UI 相關的數據,生命周期與 Activity/Fragment 解耦&…

C語言--求n以內的素數(質數)

求n以內的素數,可以用試除法或者埃拉托斯特尼篩法(埃氏篩法) 文章目錄 試除法埃拉托斯特尼篩法(埃氏篩法)兩種方法測試運行效率 輸入:數字n 輸出:n以內所有的素數 不管是哪個方法,都…

Skynet.socket 函數族使用詳解

目錄 Skynet.socket 函數族使用詳解核心功能分類一、TCP 連接管理1. 監聽端口2. 建立連接3. 關閉連接 二、數據讀寫操作1. 阻塞式讀取2. 寫入數據2.1 socket.write(fd, data) 的返回值2.2 示例代碼2.3 關鍵注意事項2.4 與其他函數的區別2.5 底層原理2.6 總結 三、UDP 處理1. 創…

Unity Addressables資源生命周期自動化監控技術詳解

一、Addressables資源生命周期管理痛點 1. 常見資源泄漏場景 泄漏類型典型表現檢測難度隱式引用泄漏腳本持有AssetReference未釋放高異步操作未處理AsyncOperationHandle未釋放中循環依賴泄漏資源相互引用無法釋放極高事件訂閱泄漏未取消事件監聽導致對象保留高 2. 傳統管理…

aws(學習筆記第三十八課) codepipeline-build-deploy-github-manual

文章目錄 aws(學習筆記第三十八課) codepipeline-build-deploy-github-manual學習內容:1. 整體架構1.1 代碼鏈接1.2 全體處理架構2. 代碼分析2.1 創建`ImageRepo`,并設定給`FargateTaskDef`2.2 創建`CodeBuild project`2.3 對`CodeBuild project`賦予權限(`ECR`的`image rep…

在windows服務器使用Nginx反向代理云端的python實現的web應用

近日得閑,計劃將之前寫過的一些小桌面程序搬到云服務器上方便隨時隨地使用,同時也學習一些基本的網站開發和搭建知識,于是在AI的幫助下,基于niceguifastapi非常快捷地搞出來了一個前后端一體的網站程序,放在云服務器上…

全球貿易戰火重燃:50%關稅如何絞殺跨境電商低價模式?

一、政策高壓:美國對華貿易戰升級路線圖 2024年5月,美國國會《數字貿易壁壘法案》草案曝光,標志著中美貿易博弈進入新階段: ? 關稅武器精準打擊:成衣、消費電子、小家電稅率擬從10-25%躍升至50% ? 監管范圍擴大&…