手擼AI-2: 設置腳本參數與設置隨機種子

一.設置腳本參數

1. 代碼示例

????????在完整的模型訓練代碼中,我們時常能看到通過python train.py --params 來訓練模型,這也是在無UI界面的服務器上訓練模型最主要的方法,因此使用腳本并設置腳本參數尤為重要.

? ? ? ? 我們通常會將腳本設置的代碼寫在config,py中,再用訓練主函數main.py進行函數調用:

from config import return_argsdef main():args = return_args()

? ? ? ? 由此我們可以節省主函數的空間,將代碼寫在config.py:

import argparseparser = argparse.ArgumentParser(description='Dogs VS Cats Classification')
parser.add_argument('--DIR', default='..', help='dataset location')
parser.add_argument('--split_ratio', type=float, default=0.8,help='default setting. train : val = 8 : 2')parser.add_argument('--epochs', type=int, default=5, help='number of epochs')
parser.add_argument('-b', '--batch-size', default=32,type=int, help='mini-batch size, 8.7G memory per gpu with bs32, swinB 224')
parser.add_argument('--lr', '--learning-rate', default=1e-5, type=float,metavar='LR', help='initial learning rate', dest='lr')
parser.add_argument('-j', '--workers', default=4, type=int, metavar='N',help='number of data loading workers (default: 32)')
parser.add_argument('--seed', default=42, type=int,help='seed for initializing training. ')parser.add_argument('-p', '--print_freq', default=10, type=int, metavar='N',help='print frequency')
parser.add_argument('-s', '--save', action='store_true',help='save best model')
parser.add_argument('--checkpoint', default=None, type=str,help='load model for testing')def return_args():args = parser.parse_args()return args

二.設置隨機種子

1.代碼示例

????????在深度學習實驗中,由于初始化權重、數據洗牌、Dropout等操作的隨機性,同一份代碼可能會得到不同的結果。為了使實驗結果可復現,我們通常會設置一個固定的隨機種子,這樣每次運行實驗時,所有的隨機操作都會有相同的結果。注意,盡管設置了隨機種子可以提高實驗的可復現性,但在某些情況下(例如使用多線程或特定的GPU操作)仍可能會有一些隨機性。

if args.seed is not None:  # 如果提供了隨機種子random.seed(args.seed)  # 為Python內置的隨機庫設置種子np.random.seed(args.seed)  # 為NumPy的隨機庫設置種子torch.manual_seed(args.seed)  # 為PyTorch的CPU隨機庫設置種子torch.cuda.manual_seed_all(args.seed)  # 為PyTorch的所有GPU隨機庫設置種子cudnn.deterministic = True  # 為CuDNN庫設置確定性模式,這可以確保每次運行網絡時相同輸入會有相同輸出

2.random.seed(42)中42是什么意思?

????????在這里,42是一個隨機種子(random seed)。隨機種子是用于初始化一個隨機數生成器的數字。通過設置隨機種子,我們可以確保每次運行程序時,隨機數生成器產生的隨機數序列是一樣的,從而使得程序的運行結果具有可重復性。

????????為什么選擇42作為隨機種子呢?這其實沒有特別的原因,42只是一個常用的隨機種子。在某些情況下,人們可能會選擇42作為隨機種子,因為42在科幻小說《銀河系漫游指南》中被設定為“生命、宇宙以及任何事物的終極答案”。但實際上,你可以選擇任何你喜歡的數字作為隨機種子。只要隨機種子相同,那么生成的隨機數序列就會相同。這對于確保實驗的可重復性非常有用。

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

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

相關文章

P4715 【深基16.例1】淘汰賽題解

題目 有(n≤7)個國家參加世界杯決賽圈且進入淘汰賽環節。已經知道各個國家的能力值,且都不相等。能力值高的國家和能力值低的國家踢比賽時高者獲勝。1號國家和2號國家踢一場比賽,勝者晉級。3號國家和4號國家也踢一場,…

C++用臨時對象構造新對象

C用臨時對象構造新對象 //用臨時對象構造同類型的新對象&#xff0c;該臨時對象不產生&#xff1b; // 直接用生成臨時對象的方法構造新對象&#xff0c;這是編譯器對代碼的優化&#xff0c;效率更高 #include<iostream> using namespace std; class MyClass { public:…

Golang 調度器 GPM模型

Golang 調度器 GPM模型 1 多進程/線程時代有了調度器需求 在多進程/多線程的操作系統中&#xff0c;就解決了阻塞的問題&#xff0c;因為一個進程阻塞cpu可以立刻切換到其他進程中去執行&#xff0c;而且調度cpu的算法可以保證在運行的進程都可以被分配到cpu的運行時間片。這…

chatgpt:還有哪些人工智能和科技值得關注?

今天&#xff0c;很多人的目光都被ChatGPT吸引&#xff0c;其實&#xff0c;人工智能的范圍很大&#xff0c;遠不止ChatGPT或者其他自然語言的處理工具。所以說不管ChatGPT的結果如何&#xff0c;人工智能依然是未來。 那么在ChatGPT之外&#xff0c;還有沒有什么值得關注的人…

在網頁上踢球:打造我自己的python(Django)足球網站

足球不僅僅是球場上的90分鐘。它是一個不斷發展的故事&#xff0c;一個全球球迷社群的粘合劑&#xff0c;一個數據和熱情交織的世界。作為一名開發者和球迷&#xff0c;我決定將這兩大愛好結合起來&#xff0c;用 Django 打造一個足球網站&#xff0c;讓球迷們能夠追蹤他們最愛…

Unity AI生成全景圖制作天空盒

現在的AI很強大。 其中&#xff0c;有這樣一個網站&#xff0c;通過輸入提示詞&#xff0c;選擇某種風格就可以為你生成360全景圖。 網頁鏈接 一、生成全景圖 打開網頁后&#xff0c;如圖&#xff1a; 勾選&#xff0c;點擊CONFIRM。 點擊GET STARTED&#xff0c;進入主頁。…

機器人定位——里程計Odom

根據兩個車輪的輪速去估計當前的車的定位 我將提供一個更詳細完整的模型來描述兩輪差速機器人的里程計數。 我們假設機器人的兩個輪子的半徑分別為r1和r2&#xff0c;兩個輪子的轉速分別為ω1和ω2。機器人的輪距為L&#xff0c;指的是兩個輪子中心之間的距離。 首先&#x…

Git LFS配置

當你需要克隆一個包含通過 Git Large File Storage (LFS) 管理的大文件的倉庫時&#xff0c;確保 Git LFS 已經在你的系統上安裝并正確配置是很重要的。這樣&#xff0c;當你執行 git clone 命令時&#xff0c;Git LFS 跟蹤的文件也會被正確地下載。以下是在 macOS 上進行配置和…

Stable Cascade-ComfyUI中文生圖、圖生圖、多圖融合基礎工作流分享

最近 ComfyUI對于Stable Cascade的支持越來越好了一些&#xff0c;官方也放出來一些工作流供參考。 這里簡單分享幾個比較常用的基礎工作流。 &#xff08;如果還沒有下載模型&#xff0c;可以先閱讀上一篇Stable Cascade升級&#xff0c;現在只需要兩個模型&#xff09; &a…

python數據分析numpy基礎之argmax求數組最大值索引

1 python數據分析numpy基礎之argmax求數組最大值索引 python的numpy庫的argmax()函數&#xff0c;用于獲取沿指定軸的最大值的索引。 用法 numpy.argmax(a, axisNone, outNone, *, keepdims<no value>)描述 argmax()返回沿指定軸的最大值的索引。 入參axis表示指定軸…

Docker技術概論(5):Docker網絡

Docker技術概論&#xff08;5&#xff09; Docker網絡 - 文章信息 - Author: 李俊才 (jcLee95) Visit me at CSDN: https://jclee95.blog.csdn.netMy WebSite&#xff1a;http://thispage.tech/Email: 291148484163.com. Shenzhen ChinaAddress of this article:https://blog…

基于QT和Visa的安捷倫(keysight)34970A溫度采集

在以前的文章中&#xff0c;描述了如何在labview開發讀取34970A儀器采集的溫度。 也描述了如何安裝keysight IO Libraries Suits. 那么本文更進一步&#xff0c;描述QT平臺c語言開發軟件&#xff0c;讀取34970A儀器采集的溫度。 以下是c代碼&#xff0c;因為采集耗費時間長&…

C++虛函數調用規則

C虛函數調用規則 基類、派生類結構&#xff1a; class Foo { public:virtual void print() {cout << "Foo" << endl;} }; class Bar : public Foo { public:virtual void print() {cout << "Bar" << endl;} };1.通過對象直接調用…

AcWing 895. 最長上升子序列(線性dp)

問題描述 給定一個長度為N NN的數列&#xff0c;求數值嚴格單調遞增的子序列的長度最長是多少。 輸入格式&#xff1a; 第一行包含整數N NN。 第二行包含N NN個整數&#xff0c;表示完整序列。 輸出格式&#xff1a; 輸出一個整數&#xff0c;表示最大長度。 數據范圍 1 ≤…

【C++提高編程】

C提高編程 C提高編程1 模板1.1 模板的概念1.2 函數模板1.2.1 函數模板語法1.2.2 函數模板注意事項1.2.3 函數模板案例1.2.4 普通函數與函數模板的區別1.2.5 普通函數與函數模板的調用規則1.2.6 模板的局限性 1.3 類模板1.3.1 類模板語法1.3.2 類模板與函數模板區別1.3.3 類模板…

備戰藍橋杯---動態規劃的一些思想1

話不多說&#xff0c;直接看題&#xff1a; 目錄 1.雙線程DP 2.正難則反多組DP 3.換個方向思考&#xff1a; 1.雙線程DP 可能有人會說直接貪心&#xff1a;先選第1條的最優路徑&#xff0c;再選第2條最優路徑。 其實我們再選第1條時&#xff0c;我們怎么選會對第2條的路徑…

FastJson中“$ref 循環引用檢測”的問題

今天在測試時&#xff0c;錯誤停留在了以下的代碼行 Object object new ObjectMapper().readValue(JSON.toJSONString(procInst.getForm()), Object.class); 報錯信息&#xff1a;com.fasterxml.jackson.databind.exc.UnrecognizedPropertyException: Unrecognized field &quo…

linux命令行與shell腳本大全——學習筆記(1-4章)

第一章、第二章 查看運行層級 runlevel 目前有7個層級&#xff0c;3是有聯網的多用戶模式&#xff0c;5是配有GUI的多用戶模式&#xff0c;等等 第三章 啟動shell 查看/etc/passwd文件&#xff0c;可以看到每個用戶的默認shell程序&#xff0c;如: christine:x:1001:1001:…

面條機水箱低液位提醒功能如何實現

光電液位傳感器在面條機水箱低液位功能的實現中發揮著重要作用。該技術通過光學原理和分離式設計&#xff0c;實現了面條機水箱液位的精準檢測和智能控制&#xff0c;為面條生產提供了穩定的保障。 采用分離式液位傳感器&#xff0c;將菱鏡部分設計直接置于面條機水箱上&#…

nvidia a100-pcie-40gb環境安裝

1.conda create --name torch_li python3.8 2. conda install pytorch1.7.1 torchvision0.8.2 torchaudio0.7.2 cudatoolkit11.0 -c pytorch 環境測試&#xff1a;torch.cuda.is_available() 3.conda remove -n torch_li --all 4.pip install opencv-python-headless 5.pip ins…