學習率調整

學習率調整

import mathdef adjust_learning_rate(optimizer, epoch, args):"""Decay the learning rate with half-cycle cosine after warmup"""if epoch < args.warmup_epochs:lr = args.lr * epoch / args.warmup_epochs else:lr = args.min_lr + (args.lr - args.min_lr) * 0.5 * \(1. + math.cos(math.pi * (epoch - args.warmup_epochs) / (args.epochs - args.warmup_epochs)))for param_group in optimizer.param_groups:if "lr_scale" in param_group:param_group["lr"] = lr * param_group["lr_scale"]else:param_group["lr"] = lrreturn lr

預熱階段的學習率調整:

if epoch < args.warmup_epochs:lr = args.lr * epoch / args.warmup_epochs

如果當前 epoch 小于預熱周期數 args.warmup_epochs,則學習率 lr 隨著 epoch 線性增加,從 0 增加到初始學習率 args.lr。公式為 lr = lr * epoch / warmup_epochs
lr = lr × epoch w a r m u p _ e p o c h s \text{lr} = \frac{\text{lr} \times \text{epoch}}{warmup\_epochs} lr=warmup_epochslr×epoch?

余弦退火階段的學習率調整

else:lr = args.min_lr + (args.lr - args.min_lr) * 0.5 * \(1. + math.cos(math.pi * (epoch - args.warmup_epochs) / (args.epochs - args.warmup_epochs)))

如果當前 epoch 大于等于預熱周期數 args.warmup_epochs,則使用余弦退火函數來調整學習率。公式為:

lr = args.min_lr + ( args.lr ? args.min_lr ) × 0.5 × ( 1 + cos ? ( π × epoch ? args.warmup_epochs args.epochs ? args.warmup_epochs ) ) \text{lr} = \text{args.min\_lr} + (\text{args.lr} - \text{args.min\_lr}) \times 0.5 \times \left(1 + \cos\left(\pi \times \frac{\text{epoch} - \text{args.warmup\_epochs}}{\text{args.epochs} - \text{args.warmup\_epochs}}\right)\right) lr=args.min_lr+(args.lr?args.min_lr)×0.5×(1+cos(π×args.epochs?args.warmup_epochsepoch?args.warmup_epochs?))

更新優化器的學習率

for param_group in optimizer.param_groups:if "lr_scale" in param_group:param_group["lr"] = lr * param_group["lr_scale"]else:param_group["lr"] = lr

這個函數根據訓練周期動態調整學習率,先進行線性預熱,然后使用余弦退火策略。這樣可以在初期穩定模型的訓練,避免較大學習率帶來的不穩定性,并在后期逐漸減小學習率,提高模型的收斂效果。

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

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

相關文章

不是,你不會還在用雙層遍歷循環來做新舊數組對比,尋找新增元素吧?

目錄 一、雙層循環遍歷 1.1、雙循環錯誤示范 1.2、正確的做法 ①使用array.includes() ②使用set 二、array.includes()的使用與技巧 2.1、基本語法 2.2、返回值 2.3、使用技巧 2.3.1、用戶輸入驗證 2.3.2、權限檢查 2.4、兼容問題 三、總結 一、雙層循環遍歷 1.…

【重學C語言】十七、預處理指令

【重學C語言】十七、預處理指令 預處理指令預定義宏`#define` 宏定義示例注意事項特殊符號條件編譯頭文件包含`#pragma`預處理指令 C語言中的預處理指令(Preprocessor Directives)是一種特殊的指令,它們在編譯過程的早期階段(即實際編譯之前)被預處理器(Preprocessor)處…

OpenCV學習 基礎圖像操作(十六):圖像距離變換

基礎原理 顧名思義&#xff0c;我們可以利用像素之間的距離作為對該像素的一種刻畫&#xff0c;并將其運用到相應的計算之中。然而&#xff0c;在一幅圖像之中&#xff0c;某種類型的像素并不是唯一的&#xff0c;因此我門常計算的是一類像素到另一類的最小距離&#xff0c;并…

My Spirit | “頂級復盤”

世界不會在意你的自尊&#xff0c; 人們看到的只是你的成就。 在你沒有成就之前&#xff0c; 切勿過分強調自尊。 ——菲茨杰拉德《了不起的蓋茨比》 目錄 My Spirit | “頂級復盤”00 | 日復盤01 | 周復盤2.1 周計劃2.2 周復盤2.3 下步計劃2.4 下步總結 02 | 月復盤2.1 本月目…

香橙派KunPengPro評測

一、引言 二、開箱 2.1、主要包含說明 1、充電器(贈typec-c線) 2、香橙派kunpengpro(已經帶裝好帶散熱器) 3、SD卡(32G)(已經帶裝好系統openEuler 22.03 (LTS-SP3)) (注意&#xff1a;上電接HDMI線可直接用&#xff0c;賬號&#xff1a;openEuler 密碼&#xff1a;openEuler)…

vue使用tailwindcss

安裝依賴 pnpm add -D tailwindcss postcss autoprefixer創建配置文件tailwind.config.js npx tailwindcss init在配置文件content中添加所有模板文件的路徑 /** type {import(tailwindcss).Config} */ export default {content: [./index.html, ./src/**/*.{vue,js,ts,jsx,…

【Linux】開發工具入門指南,輕松掌握你的開發利器

開發工具 1. 軟件包管理器yum1.1 軟件包安裝方式1.2 yum的"三板斧"1.3 yum的周邊 2. 開發工具3. 編輯器vim4. 編譯器gcc、g5. 項目自動化構建工具make、Makefile6. 進度條小程序7. 調試器gdb 1. 軟件包管理器yum 1.1 軟件包安裝方式 源代碼安裝&#xff1a;用戶手動…

微信小程序 npm構建+vant-weaap安裝

微信小程序&#xff1a;工具-npm構建 報錯 解決&#xff1a; 1、新建miniprogram文件后&#xff0c;直接進入到miniprogram目錄&#xff0c;再次執行下面兩個命令&#xff0c;然后再構建npm成功 npm init -y npm install express&#xff08;Node js后端Express開發&#xff…

智慧校園的機遇與挑戰

隨著5G、物聯網、大數據等技能的日漸老練&#xff0c;數字化正在滲透到各行各業中&#xff0c;為事務立異和價值增加供給支撐。在教育職業&#xff0c;運用智能化體系賦能教育辦理越來越受歡迎&#xff0c;教育信息化方針一再出臺&#xff0c;進一步加快了智慧校園落地的腳步。…

Linux - 文件管理高級 sed

3.處理字符 sed ① sed 默認情況下不會修改原文件內容 ② sed 是一種非交互式的編輯器 3.1 工作原理 將原文件一行一行的進行處理&#xff0c;取出一行&#xff0c;放入“模式空間進行處理”&#xff0c;處理完成之后將結果輸出到屏幕上&#xff0c;然后讀取下一行&#xf…

彭濤 | 2024年5月小結

5月份還是蠻有刺激的&#xff0c;做了蠻多的事情&#xff0c;但是沒賺到錢&#xff0c;真是一屯操作猛如虎&#xff0c;一看賬戶0.5。 就喜歡創業這種一天天累死累活還不賺錢的感覺&#xff0c;哈哈哈哈 老規矩簡單說下這個月的情況&#xff0c;如果對你有收獲就最好了。 游學丹…

測繪外業需要注意些什么?

在進行測繪外業時&#xff0c;需要注意的事項涉及多個方面&#xff0c;包括充分的準備工作、合理的設備選擇、精確的操作技巧以及細致的數據處理。下面將具體展開這些要點&#xff1a; 1. 充分準備 - 了解任務要求&#xff1a;在開始外業工作前&#xff0c;需要明確測繪的目…

VUE框架前置知識總結

一、前言 在學習vue框架中&#xff0c;總是有些知識不是很熟悉&#xff0c;又不想系統的學習JS&#xff0c;因為學習成本太大了&#xff0c;所以用到什么知識就學習什么知識。此文檔就用于記錄零散的知識點。主要是還是針對與ES6規范的JS知識點。 以下實驗環境都是在windows環…

頭歌頁面置換算法第2關:計算OPT算法缺頁率

2 任務:OPT算法 2.1 任務描述 設計OPT頁面置換算法模擬程序:從鍵盤輸入訪問串。計算OPT算法在不同內存頁框數時的缺頁數和缺頁率。要求程序模擬駐留集變化過程,即能模擬頁框裝入與釋放過程。 2.2任務要求 輸入串長度作為總頁框數目,補充程序完成OPT算法。 2.3算法思路 OPT算…

【Tlias智能學習輔助系統】04 部門管理 刪除 和 新增

Tlias智能學習輔助系統 04 部門管理 刪除 和 新增 刪除部門APIDeptController.javaDeptService.javaDeptServiceImpl.javaDeptMapper.java前端聯調 新增部門API有一步簡化DeptController.javaDeptService.javaDeptServiceImpl.javaDeptMapper.java前端聯調 刪除部門API 請求路徑…

31-ESP32-S3-WIFI篇-02 Event Group (事件標記組)

ESP32-S3-WIFI 事件標記組 介紹 在ESP32-S3的WiFi驅動程序中&#xff0c;事件標記組&#xff08;Event Group&#xff09;是一個非常重要的概念。它是FreeRTOS中的一種同步機制&#xff0c;用于在任務之間傳遞和同步事件。在WiFi驅動程序中&#xff0c;我們使用事件標記組來通…

Go 語言字符串及 strings 和 strconv 包

在 Go 語言編程中&#xff0c;字符串是最基本、最常用的數據類型之一。無論是處理用戶輸入、讀取文件內容&#xff0c;還是生成輸出&#xff0c;字符串操作無處不在。為了方便開發者對字符串進行各種操作&#xff0c;Go 語言提供了強大的 strings 包和 strconv 包。strings 包包…

Selenium+Java 環境搭建

selenium 介紹 Selenium 是 web 應用中基于 UI 的自動化測試框架&#xff0c;支持多平臺、多瀏覽器、多語言。 早期的 selenium RC 已經被現在的 webDriver 所替代&#xff0c;可以簡單的理解為selenium1.0webdriver 構成 現在的 Selenium2.0 。現在我們說起 selenium &#xf…

適合學生寫作業的臺燈有哪些?臺燈怎么選詳細攻略!

在數字化飛速發展的今天&#xff0c;孩子們的學習和生活越來越離不開電子屏幕。然而&#xff0c;長時間盯著屏幕&#xff0c;不僅容易讓眼睛感到疲勞&#xff0c;更是近視問題日益嚴重的元兇之一。每一位家長都希望孩子能擁有健康的視力&#xff0c;因此會為孩子挑選一臺護眼燈…

MySQL十部曲之九:MySQL優化理論

文章目錄 前言概述查詢優化查詢執行計劃EXPLAIN獲取表結構信息獲取執行計劃信息 EXPLAIN 輸出格式如何使用EXPLAIN進行優化 范圍訪問優化單列索引的范圍訪問多列索引的范圍訪問 索引合并優化索引合并交叉訪問算法索引合并聯合訪問算法索引合并排序聯合訪問算法 索引下推優化連接…