一學就會的深度學習基礎指令及操作步驟(3)模型訓練驗證

文章目錄

    • 模型訓練驗證
      • 損失函數和優化器
      • 模型優化
      • 訓練函數
      • 驗證函數
      • 模型保存

模型訓練驗證

損失函數和優化器

loss_function = nn.CrossEntropyLoss() # 損失函數
optimizer = Adam(model.parameters())  # 優化器,優化參數

模型優化

獲得模型所有的可訓練參數(比如每一層的權重、偏置),設置優化器類型,自動調整學習步長(自適應學習率),后續訓練更新參數。

# 雇傭Adam教練,讓他管理模型參數
optimizer = Adam(model.parameters(), lr=0.001)  # lr是初始學習率
# 1. optimizer.zero_grad()    # 清空上一輪的成績單
# 2. loss.backward()          # 計算每個參數要改進的方向(梯度)
# 3. optimizer.step()         # 參數調整

訓練函數

def train():loss = 0accuracy = 0model.train()for x, y in train_loader:  # 獲得每個batch數據x, y = x.to(device), y.to(device)output = model(x)        # 得到預測labeloptimizer.zero_grad()    # 梯度清零batch_loss = loss_function(output, y)  # 計算batch誤差batch_loss.backward()    # 計算誤差梯度optimizer.step()         # 調整模型參數loss += batch_loss.item()accuracy += get_batch_accuracy(output, y, train_N)print('Train - Loss: {:.4f} Accuracy: {:.4f}'.format(loss, accuracy))

驗證函數

def validate():loss = 0accuracy = 0model.eval() # 評估模式,關閉隨機性等增加穩定性with torch.no_grad(): # 禁用梯度,提高效率for x, y in valid_loader:x, y = x.to(device), y.to(device)output = model(x)  # 不用進行梯度計算、參數調整loss += loss_function(output, y).item()accuracy += get_batch_accuracy(output, y, valid_N)print('Valid - Loss: {:.4f} Accuracy: {:.4f}'.format(loss, accuracy))

模型保存

.pth 文件是PyTorch模型的“存檔文件”,保存了所有必要信息。加載后,模型即可直接運行,無需重新訓練!

# 保存整個模型(結構 + 參數)
torch.save(model, 'model.pth')

.pth 文件可以用https://netron.app/查看

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

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

相關文章

Spring Boot 注解大全:全面解析與實戰應用

目錄 一、Spring Boot 啟動與配置相關注解 1.1 SpringBootApplication 1.2 EnableAutoConfiguration 1.3 Configuration 1.4 ComponentScan 二、依賴注入與組件管理注解 2.1 Component 2.2 Service 2.3 Repository 2.4 Controller 2.5 RestController 2.6 Autowired…

【語料數據爬蟲】Python爬蟲|批量采集征集意見稿數據(1)

前言 本文是該專欄的第5篇,后面會持續分享Python爬蟲采集各種語料數據的的干貨知識,值得關注。 在本文中,筆者將主要來介紹基于Python,來實現批量采集“征集意見稿”數據。同時,本文也是采集“征集意見稿”數據系列的第1篇。 采集相關數據的具體細節部分以及詳細思路邏輯…

企業招聘能力提升之道:突破困境,精準納才

企業招聘能力提升之道:突破困境,精準納才 在企業運營的廣袤版圖中,招聘工作無疑是一塊至關重要的拼圖。然而,不少企業在這片領域中舉步維艱,盡管投入了海量的時間與精力,收獲的成果卻不盡人意。面試環節仿…

AI對前端開發的沖擊

Cursor cursor新版本0.46版本號中有部分是改成了新布局其實 Agent 和 Edit 和 Composer 是一樣的,為了方便大家使用,我們把它們合并了,Edit 相當于普通模式下的 Composer,Agent 就是代理模式。 快捷鍵ctrli、ctrll、ctrlk 4o適合…

java中如何把json轉化的字符串再轉化成json格式

使用org.json庫 首先&#xff0c;確保你的項目中已經包含了org.json庫。如果你使用Maven&#xff0c;可以在pom.xml中添加以下依賴&#xff1a; <dependency><groupId>org.json</groupId><artifactId>json</artifactId><version>20210307…

泛型、泛型上限、泛型下限、泛型通配符

DAY8.1 Java核心基礎 泛型 Generics 是指在類定義時不指定類中信息的具體數據類型&#xff0c;而是用一個標識符來代替&#xff0c;當外部實例化對象時再指定具體的數據類型。 在定義類或者接口時不明確指定類中信息的具體數據類型&#xff0c;在實例化時再來指定具體的數據類…

Win10 下搭建免費的 FTP 服務器 FileZilla

一、概述 FileZilla 服務器是一個免費的開源FTP和FTPS服務器&#xff0c;是根據GNU通用公共許可證條款免費發布的開源軟件。FileZilla支持FTP、FTPS、SFTP等文件傳輸協議&#xff0c;相比其他FTP服務器&#xff0c;最大的優勢是FileZilla自由(免費)。 FileZilla的官網地址是&a…

C/C++中對字符處理的常用函數

C語言中的 ctype.h 頭文件提供了一系列字符分類和轉換函數&#xff0c;用于高效處理字符相關操作。這些函數通過接受 int 類型參數&#xff08;需為 unsigned char 或 EOF &#xff08;-1&#xff09;值&#xff09;&#xff0c;返回非零值表示條件正確&#xff0c;返回0表示錯…

雙指針算法介紹+算法練習(2025)

一、介紹雙指針算法 雙指針&#xff08;或稱為雙索引&#xff09;算法是一種高效的算法技巧&#xff0c;常用于處理數組或鏈表等線性數據結構。它通過使用兩個指針來遍歷數據&#xff0c;從而減少時間復雜度&#xff0c;避免使用嵌套循環。雙指針算法在解決諸如查找、排序、去重…

【每日八股】計算機網絡篇(四):HTTP

目錄 HTTP 與 HTTPS 的區別&#xff1f;HTTPS 加密與認證的過程&#xff1f;ClientHelloServerHello客戶端回應服務端回應 HTTPS 一定安全可靠嗎&#xff1f;HTTPS 狀態碼的含義&#xff1f;HTTP 緩存有哪些實現方式&#xff1f;HTTP 1.0、HTTP 1.1、HTTP 2.0 和 HTTP 3.0 的區…

TMS320F28P550SJ9學習筆記10:軟件模擬I2C通信_驅動1.3寸OLED

現在有了具體的I2C通信器件&#xff0c;一塊1.3寸OLED屏幕&#xff0c;今日嘗試移植配置一下: 本文主要講的是&#xff0c;使用軟件模擬I2C通信 文章提供測試代碼講解、完整工程下載、測試效果圖 目錄 前置文章&#xff1a; I2C通信引腳&#xff1a; 軟件I2C 引腳的初始化&am…

spring boot 發送郵件驗證碼

一、前置需求 1、準備郵箱 2、登錄授權碼 qq郵箱在–>設置–>賬號POP3/IMAP/SMTP/Exchange/CardDAV/CalDAV服務 開啟服務 二、發送郵件 1、簡單郵件 包含郵件標題、郵件正文 2、引入mail啟動器 <dependency><groupId>org.springframework.boot</groupI…

塔能科技:智能機箱,為城市安防 “智” 造堅實堡壘

在當今智慧城市建設的浪潮中&#xff0c;城市安防面臨著諸多挑戰。設備管理難&#xff0c;眾多分散的安防設備猶如一盤散沙&#xff0c;難以實現高效統一的管控&#xff1b;數據傳輸不穩定&#xff0c;關鍵時刻信息的延遲或丟失&#xff0c;可能導致嚴重后果。這些問題嚴重制約…

電商數據分析 電商平臺銷售數據分析 電商平臺數據庫設計 揭秘電商怎么做數據分析

《電商參謀數據分析平臺方案》&#xff08;28頁PPT&#xff09;是一套為電商行業量身定制的一體化解決方案&#xff0c;它通過全鏈路打通從數據獲取到分析的全過程&#xff0c;幫助電商企業實現精細化運營和市場機會的挖掘。該方案針對電商行業在數據獲取、加工整合及業務賦能方…

uniapp uview 1.0 跨域h5配置多個代理、如何請求接口

參考文章&#xff1a;uniapp uView1.0跨域h5配置多個代理 官方手冊&#xff1a;http 請求 項目中使用&#xff1a; 參考其他博主的文章是在manifest.json中配置代理&#xff0c;但在官方的手冊中是直接在script請求的&#xff0c;我嘗試請求了下沒問題&#xff0c;上線后也不…

MAVEN解決版本依賴沖突

文章目錄 一、依賴沖突概念1、什么是依賴沖突2、依賴沖突的原因3、如何解決依賴沖突 二、查看依賴沖突-maven-helper1、安裝2、helper使用1、conflicts的閱讀順序&#xff08;從下向上看&#xff09;2、dependencies as List的閱讀順序&#xff08;從下向上看&#xff09;3、de…

79.ScottPlot的MVVM實現 C#例子 WPF例子

如何通過數據綁定在 WPF 中實現動態圖像顯示 在 WPF 應用程序中&#xff0c;通過數據綁定實現動態圖像顯示是一種高效且優雅的方式。以下是一個簡單的教程&#xff0c;展示如何使用 ScottPlot.WPF 庫和 MVVM 模式來實現這一功能。 第一步&#xff1a;安裝必要的 NuGet 包 首…

簡單工廠 、工廠方法模式和抽象工廠模式

簡單工廠 、工廠方法模式和抽象工廠模式 1.模式性質與定位 簡單工廠:并非正式的設計模式(屬編程習慣),通過單一工廠類根據參數判斷創建不同產品,本質是將對象創建邏輯集中管理。 工廠方法:是標準的創建型設計模式,定義抽象創建接口,由子類決定實例化哪個具體產品類,…

熱圖回歸(Heatmap Regression)

熱圖回歸(Heatmap Regression)是一種常用于關鍵點估計任務的方法,特別是在人體姿態估計中。它的基本思想是通過生成熱圖來表示某個關鍵點在圖像中出現的概率或強度。以下是熱圖回歸的主要特點和工作原理: 主要特點 熱圖表示: 每個關鍵點對應一個熱圖,熱圖中的每個像素值…

Word 小黑第15套

對應大貓16 修改樣式集 導航 -查找 第一章標題不顯示 再選中文字 點擊標題一 修改標題格式 格式 -段落 -換行和分頁 勾選與下段同頁 添加腳注 &#xff08;腳注默認位于底部 &#xff09;在腳注插入文檔屬性&#xff1a; -插入 -文檔部件 -域 類別選擇文檔信息&#xff0c;域…