深度學習中的超參管理方法:argparse模塊

在深度學習方法中我們不可避免地會遇到大量超參數如(batch_size、learning_rate等)。不同的超參數組合可以得到不同的訓練/測試結果。所以在訓練和測試過程中我們需要不斷調整超參數獲得理想的結果(煉丹),如果每一次去找分布在不同的函數里的超參數是一個及其麻煩的過程,為了管理大量的超參數提高煉丹效率,出現了許多超參數管理方法,我將自己遇到的朝參管理方法在此記錄,方便自己回顧。

1.?argparse模塊管理超參

argparse 模塊是 Python 中用于解析命令行參數的標準庫工具。它允許你定義你的腳本應該接受哪些命令行參數,以及這些參數的類型和默認值。通過使用 argparse,你可以輕松地從命令行獲取用戶輸入,并在腳本中使用這些輸入。

argparse 幫助你創建一個用戶友好的命令行界面,使得你的腳本能夠更加靈活地與用戶交互。例如,你可以定義腳本接受的選項,設置默認值,提供幫助信息,等等。

1.1 設置超參

假設我們有幾個超參數:

我們創建腳本傳入參數進行測試:

import argparse# 創建 ArgumentParser 實例
parser = argparse.ArgumentParser(description="用來介紹parser!!")# 添加命令行參數
#help用于在命令行中打印“--batch_size”的用法,可以提醒自己和其他使用此程序的人
parser.add_argument('--batch_size', type=int, default=64, help="定義batch")
parser.add_argument('--epoch', type=int, default=200, help="定義訓練輪數")
parser.add_argument('--learning_rate', type=float, default=0.001, help="定義學習率")# 解析命令行參數
args = parser.parse_args()# 訪問命令行參數的值
model_batch_size = args.batch_size
model_epoch = args.epoch
model_learning_rate = args.learning_rate# 輸出batch_size參數的值
print(model_batch_size)
print(model_epoch)
print(model_learning_rate)

輸出結果:

1.2 使用命令行管理傳參

可以使用help方法查看參數說明:

使用命令行傳入參數:

可以看出batch_size和epoch在手動更新參數之后打印修改后的值,learning_rate沒有修改保持默認參數。

記錄一個錯誤:文件名不可以與import中的包名一直,會導致python誤判導入的包和文件報錯:

AttributeError: module 'argparse' has no attribute 'ArgumentParser'

1.3 解析方法

parser.parse_args()
  • 解析命令行參數。如果存在未定義在 ArgumentParser 中的參數,會引發錯誤。
  • 只返回解析后的命名空間(包含所有已知參數的值)。
parser.parse_known_args()
  • 解析命令行參數,并返回一個命名空間和一個未知參數列表。如果存在未定義在 ArgumentParser 中的參數,這些參數會被存儲在返回的未知參數列表中,而不會引發錯誤。
  • parse_known_args() 方法返回一個包含兩個元素的元組,第一個元素是解析后的命名空間(包含已知參數的值),第二個元素是未知參數列表。
  • parse_known_args()[0] 只返回解析后的命名空間(已知參數的值),忽略未知參數列表。
import argparse# 創建 ArgumentParser 實例
parser = argparse.ArgumentParser("用來介紹parser!!")# 添加命令行參數
#help用于在命令行中打印“--batch_size”的用法,可以提醒自己和其他使用此程序的人
parser.add_argument('--batch_size', type=int, default=64, help="定義batch")
parser.add_argument('--epoch', type=int, default=200, help="定義訓練輪數")
parser.add_argument('--learning_rate', type=float, default=0.001, help="定義學習率")# 解析命令行參數
args = parser.parse_args()
print(args)# 解析命令行參數2
args_known = parser.parse_known_args()
print(args_known)
print(args_known[0])
print(args_known[1])

輸出:

參考:【Python】【深度學習】使用argparse模塊和JSON管理深度學習模型的超參數_深度學習代碼中用的argparse是什么意思,能不能不用-CSDN博客

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

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

相關文章

破解世紀難題:顛覆性方案解鎖世界十大未解之謎

前言 在科學的浩瀚宇宙中,始終存在一些引人入勝的謎題,它們挑戰著人類智慧的極限。這些謎題不僅涵蓋了數學、物理、天文學和生物學等領域,還觸及到意識和宇宙的本質。破解這些世紀難題,不僅意味著人類知識的巨大飛躍,…

【Windows】硬鏈接和軟鏈接(OneDrive同步指定目錄?)

文章目錄 一、場景帶入二、Windows下的硬鏈接和軟鏈接2.1 硬鏈接(Hard Link)2.2 軟鏈接(符號鏈接,Symbolic Link)2.3 軟鏈接和快捷方式2.4 應用場景 三、OneDrive中的應用3.1 錯誤姿勢3.2 好像可行的嘗試3.3 合理的解決…

智能貓砂盆兩種類型怎么選?深度剖析熱門前三的品牌!

應該也有很多鏟屎官像我一樣,第一個入手的通常都是封閉式的智能貓砂盆,自動清潔是很好用,但問題也隨之而來。有時候滾筒式的智能貓砂盆會在清潔過程中將砂團摔碎,導致糞便暴露出來產生臭味,這樣我們回來不得不又再次進…

LangChain —— Prompt Templates

文章目錄 一、什么是 Prompt Templates1、String PromptTemplates2、ChatPromptTemplates3、MessagesPlaceholder 留言占位符 二、如何使用 Prompt Templates 一、什么是 Prompt Templates 提示模板有助于將用戶輸入和參數轉換為語言模型的指令。這可用于指導模型的響應&#x…

LangChain框架詳解

LangChain框架詳解 LangChain是一個基于語言模型開發應用程序的強大框架,旨在幫助開發人員簡化與大模型交互、數據檢索以及將不同功能模塊串聯起來以完成復雜任務的過程。它提供了一套豐富的工具、組件和接口,使開發人員能夠輕松構建上下文感知和具備邏…

基于stm32+小程序開發智能家居門禁系統-硬件-軟件實現

視頻演示: 基于stm32智能家居門禁系統小程序開發項目 視頻還有添加刪除卡號,添加刪除指紋,關閉繼電器電源等沒有演示。 代碼Git: https://github.com/Abear6666/stm32lock 總體功能: 本門禁系統主要解鎖功能分別為卡…

沖積圖(alluvial plot)展示競爭性內源RNA(ceRNA)網絡

導讀: 用沖積圖展示ceRNA網絡可以更好地查看競爭和吸附關系,讓靜態的圖,“流動”起來。 沖積圖簡介 Alluvial plot(沖積圖)是一種流程圖,最初設計用于展示網絡結構隨時間的變化。這種圖表特別適用于展示…

sed的替換可用:斜杠/,豎或|,井號# 等符號, 但是查找只能用斜杠/ , sed的查找和替換可以一起用 筆記240711

sed的替換可用:斜杠/,豎或|,井號# 等符號, 但是… … 查找只能用斜杠/ 替換必須用s開頭, 如:s/ , s| , s# 例如: s/正則/替換內容/s/正則/替換內容/gs|正則|替換內容|s|正則|替換內容|gs#正則#替換內容#s#正則#替換內容#g 當內容包含斜杠/時, (例如路徑) , 使用 豎或|,井號…

06_TypeScript 中的函數

TypeScript 中的函數 一、函數的定義es5 定義函數的方法TypeScript 定義函數的方法ts 中定義方法傳參 二、可選參數三、默認參數(跟可選參數一樣)四、剩余參數(三點運算符的應用)五、函數重載六、箭頭函數 es6 一、函數的定義 es…

Windows圖形界面(GUI)-SDK-C/C++ - 編輯框(edit)

公開視頻 -> 鏈接點擊跳轉公開課程博客首頁 -> 鏈接點擊跳轉博客主頁 目錄 編輯框(edit) 控件樣式 創建控件 初始控件 消息處理 示例代碼 編輯框(edit) 控件樣式 編輯框(Edit Control)是Windows中最常用的控件之一,用于接收用戶…

python 知識點累積

.items() tinydict {Google: www.google.com, Runoob: www.runoob.com, taobao: www.taobao.com}print (tinydict.items())運行結果 dict_items([(Google, www.google.com), (Runoob, www.runoob.com), (taobao, www.taobao.com)]) 返回的 dict_items([...]) 是一個字典項的…

【持續集成_05課_Linux部署SonarQube及結合開發項目部署】

一、Linux下安裝SonarQube 1、安裝sonarQube 前置條件:sonarQube不能使用root賬號進行啟動,所以需要創建普通用戶及 其用戶組 1)創建組 2)添加用戶、組名、密碼 3)CMD上傳qube文件-不能傳到home路徑下哦 4&#xff09…

王牌站士Ⅳ--矢量數據庫對 RAG 效率的影響

前言 近年來,檢索增強生成 (RAG) 模型越來越受歡迎。RAG 模型利用大型神經網絡以及外部知識源的檢索機制。這使得模型擁有的知識比其內部存儲的更多,從而使其能夠為廣泛的主題和領域生成高質量的輸出。 影響 RAG 模型性能的關鍵因素之一是從外部源檢索相…

C++之STL簡介

提示:文章寫完后,目錄可以自動生成,如何生成可參考右邊的幫助文檔 文章目錄 前言一、STL是什么二、STL的發展歷史三、STL的組成部分3.1 容器(Containers)3.2 迭代器(Iterators)3.3 算法&#xf…

【啟明智顯分享】ESP32-S3 4.3寸觸摸串口屏HMI應用方案:WIFI/藍牙無線通信助力烘干設備實現遠程遙控

技術不斷進步,人們對烘干設備的美觀度、功能多樣性提出更高要求,傳統的數碼管顯示、按鍵式控制已經無法滿足客戶的需求。用智能屏替代傳統的數碼管可以很好的解決這個問題,為用戶帶來更好的人機交互體驗。 基于此,啟明智顯提出將樂…

solidity實戰練習2--ERC20實現

//SPDX-License-Identifier:MTT pragma solidity ^0.8.24;interface erc20{function name()external view returns (string memory);//查看代幣的名稱function symbol() external view returns(string memory);//查看代幣簡稱function totalSupply()external view returns(uint…

低代碼:架起產教融合的“立交橋”

隨著信息技術的飛速發展,傳統的軟件開發模式正面臨著前所未有的挑戰。為了應對這一挑戰,低代碼平臺應運而生,其通過簡化開發流程、提高開發效率,成為了推動產業與教育深度融合的重要力量。本文將探討低代碼平臺如何架起產教融合的…

C++基礎(十八):繼承(重點)

各位看官,大家好!今天我們將探討C中的三大特性之一:繼承。繼承是一種面向對象編程的重要概念,它允許我們通過創建新的類,從而復用和擴展現有類的功能。通過繼承,我們不僅能夠提高代碼的可重用性和可維護性&…

算法刷題筆記 KMP字符串(C++實現,并給出了求next數組的獨家簡單理解方式)

文章目錄 題目描述基本思路實現代碼 題目描述 給定一個字符串S,以及一個模式串P,所有字符串中只包含大小寫英文字母以及阿拉伯數字。模式串P在字符串S中多次作為子串出現。求出模式串P在字符串S中所有出現的位置的起始下標。 輸入格式 第一行輸入整數…

docker拉取鏡像,報錯error pulling image configuration: download failed after attempts=6: dial tcp 157.240.1

error pulling image configuration: download failed after attempts6: dial tcp 157.240.10.32:443: i/o timeout docker compose pull docker pull langgenius/dify-web:0.6.13 重啟docker sudo systemctl restart dockerhttps://stackoverflow.com/questions/72353203/do…