Python打卡訓練營學習記錄Day34

知識點回歸:

  1. CPU性能的查看:看架構代際、核心數、線程數
  2. GPU性能的查看:看顯存、看級別、看架構代際
  3. GPU訓練的方法:數據和模型移動到GPU device上
  4. 類的call方法:為什么定義前向傳播時可以直接寫作self.fc1(x)

    CPU性能的查看

    上述是在cpu的情況下訓練,(即使安裝了cuda,但是沒有使用cuda),我們借這個機會簡單介紹下cpu的性能差異。

  5. # pip install wmi -i https://pypi.tuna.tsinghua.edu.cn/simple
    # 這是Windows專用的庫,Linux和MacOS不支持,其他系統自行詢問大模型
    # 我想查看一下CPU的型號和核心數
    import wmic = wmi.WMI()
    processors = c.Win32_Processor()for processor in processors:print(f"CPU 型號: {processor.Name}")print(f"核心數: {processor.NumberOfCores}")print(f"線程數: {processor.NumberOfLogicalProcessors}")

?

GPU訓練

要讓模型在 GPU 上訓練,主要是將模型和數據遷移到 GPU 設備上。

在 PyTorch 里,.to(device) 方法的作用是把張量或者模型轉移到指定的計算設備(像 CPU 或者 GPU)上。

  • 對于張量(Tensor):調用 .to(device) 之后,會返回一個在新設備上的新張量。
  • 對于模型(nn.Module):調用 .to(device) 會直接對模型進行修改,讓其所有參數和緩沖區都移到新設備上。

?在進行計算時,所有輸入張量和模型必須處于同一個設備。要是它們不在同一設備上,就會引發運行時錯誤。并非所有 PyTorch 對象都有 .to(device) 方法,只有繼承自 torch.nn.Module 的模型以及 torch.Tensor 對象才有此方法。

RuntimeError: Tensor for argument #1 'input' is on CPU, but expected it to be on GPU

這個常見錯誤就是輸入張量和模型處于不同的設備。

如何衡量GPU的性能好壞呢?

以RTX 3090 Ti, RTX 3080, RTX 3070 Ti, RTX 3070, RTX 4070等為例

通過“代” 前兩位數字代表“代”: 40xx (第40代), 30xx (第30代), 20xx (第20代)。“代”通常指的是其底層的架構 (Architecture)。每一代新架構的發布,通常會帶來工藝制程的進步和其他改進。也就是新一代架構的目標是在能效比和絕對性能上超越前一代同型號的產品。

通過級別 后面的數字代表“級別”,

xx90: 通常是該代的消費級旗艦或次旗艦,性能最強,顯存最大 (如 RTX 4090, RTX 3090)。
xx80: 高端型號,性能強勁,顯存較多 (如 RTX 4080, RTX 3080)。
xx70: 中高端,甜點級,性能和價格平衡較好 (如 RTX 4070, RTX 3070)。
xx60: 主流中端,性價比較高,適合入門或預算有限 (如 RTX 4060, RTX 3060)。
xx50: 入門級,深度學習能力有限。
通過后綴 Ti 通常是同型號的增強版,性能介于原型號和更高一級型號之間 (如 RTX 4070 Ti 強于 RTX 4070,小于4080)。

通過顯存容量 VRAM (最重要!!) 他是GPU 自身的獨立高速內存,用于存儲模型參數、激活值、輸入數據批次等。單位通常是 GB(例如 8GB, 12GB, 24GB, 48GB)。如果顯存不足,可能無法加載模型,或者被迫使用很小的批量大小,從而影響訓練速度和效果

訓練階段:小批量梯度是對真實梯度的一個有噪聲的估計。批量越小,梯度的方差越大(噪聲越大)。顯存小只能夠使用小批量梯度。
推理階段:有些模型本身就非常龐大(例如大型語言模型、高分辨率圖像的復雜 CNN 網絡)。即使你將批量大小減到 1,模型參數本身占用的顯存可能就已經超出了你的 GPU 顯存上限。

import torch# 檢查CUDA是否可用
if torch.cuda.is_available():print("CUDA可用!")# 獲取可用的CUDA設備數量device_count = torch.cuda.device_count()print(f"可用的CUDA設備數量: {device_count}")# 獲取當前使用的CUDA設備索引current_device = torch.cuda.current_device()print(f"當前使用的CUDA設備索引: {current_device}")# 獲取當前CUDA設備的名稱device_name = torch.cuda.get_device_name(current_device)print(f"當前CUDA設備的名稱: {device_name}")# 獲取CUDA版本cuda_version = torch.version.cudaprint(f"CUDA版本: {cuda_version}")# 查看cuDNN版本(如果可用)print("cuDNN版本:", torch.backends.cudnn.version())else:print("CUDA不可用。")
CUDA可用!
可用的CUDA設備數量: 1
當前使用的CUDA設備索引: 0
當前CUDA設備的名稱: NVIDIA GeForce RTX 2060 SUPER
CUDA版本: 12.1
cuDNN版本: 90100

@浙大疏錦行?

?

?

?

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

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

相關文章

Django的請求和響應+template模板

🌟 如果這篇文章觸動了你的心弦,請不要吝嗇你的支持! 親愛的讀者, 感謝你花時間閱讀這篇分享。希望這里的每一個字都能為你帶來啟發或是讓你會心一笑。如果你覺得這篇文章有價值,或者它解決了你一直以來的一個疑問&a…

Python |GIF 解析與構建(2):狀態機解析

Python |GIF 解析與構建(2):狀態機解析 目錄 Python |GIF 解析與構建(2):狀態機解析 引言 一、狀態機概述 狀態機的優勢與改進方向 總結 引言 在《Python |GIF 解…

PCB設計實踐(二十六)貼片電容與插件電容的全面解析:差異、演進與應用場景

一、核心差異:結構與性能對比 物理結構與封裝形式 貼片電容(Surface Mount Device, SMD)采用扁平化設計,外形多為長方體或圓柱體,直接通過焊盤固定在電路板表面。其封裝材料通常為陶瓷、聚合物或鋁電解層,外…

XC7A200T-2FFG1156I FPGA AMD Xilinx Artix-7

XC7A200T-2FFG1156I 是 AMD Xilinx Artix-7 系列的一款高性能低功耗 FPGA,采用 28 nm 高性能低功耗(HPL)工藝制造,核心電壓在 0.95 V–1.05 V 之間,可在 –40 C 至 100 C 工業溫度范圍內穩定工作 。 邏輯資源&#xff…

LVS + Keepalived + Nginx 高可用負載均衡系統實驗

1. 項目背景 在現代 Web 應用中,高可用性和負載均衡是至關重要的需求。本項目旨在通過 LVS(Linux Virtual Server)實現流量分發,通過 Keepalived 實現高可用性,通過 Nginx 提供后端服務。該架構能夠確保在單點故障的情…

window 顯示驅動開發-視頻內存供應和回收(一)

Windows 顯示驅動程序模型 (WDDM) 1.2 及更高版本用戶模式顯示驅動程序必須使用內存套餐和回收功能(從Windows 8開始提供),以減少本地內存和系統內存中臨時表面所需的內存開銷。 最低 WDDM 版本:1.2 最低 Windows 版本&#xff…

什么是VR場景?VR與3D漫游到底有什么區別

在數字化時代,虛擬現實(Virtual Reality, 簡稱VR)場景與3D漫游作為兩種前沿技術,改變著人們的生活方式和體驗模式。通過計算機模擬真實或假想的場景,讓用戶仿佛身臨其境,并能與虛擬環境進行互動。盡管VR場景…

JAVA查漏補缺(2)

AJAX 什么是Ajax Ajax(Asynchronous Javascript And XML),即是異步的JavaScript和XML,Ajax其實就是瀏覽器與服務器之間的一種異步通信方式 異步的JavaScript 它可以異步地向服務器發送請求,在等待響應的過程中&…

客服中心大模型應用演進路線:從傳統服務到超級智能助手的轉型

客服中心作為企業與客戶溝通的重要橋梁,近年來經歷了從人工服務到人工智能驅動的深刻變革。本文基于"客服中心大模型應用演進路線圖",詳細解析客服中心從傳統模式向AI驅動智能服務的轉型歷程,剖析每個發展階段的特點、應用場景及關…

使用 OpenCV 實現“隨機鏡面墻”——多鏡片密鋪的哈哈鏡效果

1. 引言 “哈哈鏡”是一種典型的圖像變形效果,通過局部鏡面反射產生扭曲的視覺趣味。在計算機視覺和圖像處理領域,這類效果不僅有趣,還能用于藝術創作、交互裝置、視覺特效等場景。 傳統的“哈哈鏡”往往是針對整張圖像做某種鏡像或扭曲變換…

Python訓練營打卡——DAY33(2025.5.22)

目錄 簡單的神經網絡 一、PyTorch的安裝 二、準備工作 三、數據的準備 四、模型架構定義 五、模型訓練(CPU版本) 1. 定義損失函數和優化器 2. 開始循環訓練 3. 可視化結果 六、通俗解釋 1. 環境安裝(相當于買鍋碗瓢盆)…

目標檢測 Lite-DETR(2023)詳細解讀

文章目錄 迭代高級特征跨尺度融合高效的低層次特征跨尺度融合KDA:Key-aware Deformable Attention 論文翻譯: CVPR 2023 | Lite DETR:計算量減少60%!高效交錯多尺度編碼器-CSDN博客 DINO團隊的 (Lightweight Transfo…

ES(Elasticsearch) 基本概念(一)

Elasticsearch作為當前最流行的開源搜索和分析引擎,廣泛應用于日志分析、全文搜索、業務智能等領域。Elasticsearch是一個基于 Apache Lucene 構建的分布式搜索和分析引擎、可擴展數據存儲和矢量數據庫。它針對生產級工作負載的速度和相關性進行了優化。使用 Elasti…

當物聯網“芯”闖入納米世界:ESP32-S3驅動的原子力顯微鏡能走多遠?

上次咱們把OV2640攝像頭“盤”得明明白白,是不是感覺ESP32-S3這小東西潛力無限?今天,咱們玩個更刺激的,一個聽起來就讓人腎上腺素飆升的挑戰——嘗試用ESP32-S3這顆“智慧芯”,去捅一捅科學界的“馬蜂窩”,…

Excel合并單元格后,如何自動批量生成序號列

1.選擇整列 2.組合鍵:CtrlG 3.定位條件,選擇“空值” 4.在第一個框中輸入“MAX(”,鼠標選中A1框,后加“:”,鼠標選中前方“A1”,按“F4”絕對引用,補全右括號,后輸入“1…

TDengine 運維—容量規劃

概述 若計劃使用 TDengine 搭建一個時序數據平臺,須提前對計算資源、存儲資源和網絡資源進行詳細規劃,以確保滿足業務場景的需求。通常 TDengine 會運行多個進程,包括 taosd、taosadapter、taoskeeper、taos-explorer 和 taosx。 在這些進程…

Axure設計數字鄉村可視化大屏:從布局到交互的實戰經驗分享

鄉村治理正從傳統模式向“數據驅動”轉型。數字鄉村可視化大屏作為數據展示的核心載體,不僅能直觀呈現鄉村發展全貌,還能為決策提供科學依據。本文以Axure為工具,結合實際案例,分享如何從零設計一個功能完備、交互流暢的數字鄉村大…

從零基礎到最佳實踐:Vue.js 系列(1/10):《環境搭建與基礎概念》

Vue.js 環境搭建與基礎概念 關鍵點 Vue.js 是一個簡單易用的前端框架,適合初學者快速上手。搭建開發環境需要安裝 Node.js 和 npm/Yarn,推薦使用最新 LTS 版本。Vue CLI 是官方工具,可快速創建項目并提供開發服務器。Vue.js 基于 MVVM 模式&…

使用docker compose部署dify(大模型開發使用平臺)

Dify是一款生成式 AI 應用中間件,面向有私有部署與數據合規需求的企業用戶,推動企業向 AI 時代轉型。平臺支持無代碼構建,業務人員即可快速搭建與調試 AI 應用,顯著降低開發門檻。 參考 https://docs.dify.ai/zh-hans/getting-s…

npm 安裝時 SSL 證書過期問題筆記

問題描述: npm error code CERT_HAS_EXPIRED npm error errno CERT_HAS_EXPIRED npm error request to https://registry.npm.taobao.org/axios failed, reason: certificate has expired 這表明當前配置的 npm 鏡像源(淘寶鏡像 https://registry.npm.taobao.org&…