“100% 成功的 PyTorch CUDA GPU 支持” 安裝攻略

#工作記錄

一、總述

在深度學習領域,PyTorch 憑借其靈活性和強大的功能,成為了眾多開發者和研究者的首選框架。而 CUDA GPU 支持能夠顯著加速 PyTorch 的計算過程,大幅提升訓練和推理效率。然而,安裝帶有 CUDA GPU 支持的 PyTorch 常常會遇到各種問題,如版本不兼容、安裝失敗等。

經過反復實踐和總結,要想 100% 成功安裝帶有 CUDA GPU 支持的 PyTorch,強烈建議僅采用 PyTorch 官方網站生成的( 或 查找到的 舊版安裝命令)進行安裝

因為官方命令能夠確保?torchtorchvision?和?torchaudio?三個包的版本兼容性,避免因版本沖突導致安裝失敗或 CUDA GPU 支持無法啟用的情況。

下面將詳細介紹具體的安裝方案。

?二、先決條件

2.1 硬件要求

  • 計算機需配備 NVIDIA GPU,且該 GPU 支持 CUDA。你可以前往?NVIDIA 官方網站?查看具體的 GPU 支持列表。

2.2 軟件要求

  • NVIDIA 驅動:安裝與你的 GPU 型號和 CUDA 版本兼容的 NVIDIA 驅動。你可以通過在命令行輸入?nvidia-smi?查看當前驅動版本和 GPU 信息。
  • CUDA Toolkit:安裝適合你系統的 CUDA Toolkit 版本。可從?NVIDIA CUDA 下載頁面?獲取。安裝完成后,使用?nvcc --version?命令驗證安裝是否成功。
  • cuDNN:從?NVIDIA cuDNN 下載頁面?下載與你 CUDA 版本匹配的 cuDNN 庫,并按照官方文檔進行安裝。

2.3 網絡要求

確保你的網絡連接穩定,能夠流暢訪問 PyTorch 官方網站和相關下載源。

三、100% 成功方案實操

3.1 訪問 PyTorch 官方網站

打開瀏覽器,在地址欄輸入?PyTorch 官方安裝頁面,進入該頁面后,我們將看到一個用于生成安裝命令的配置界面。

?

3.2 確定安裝需求

3.2.1 項目需求判斷
  • 情況一:requirements.txt?未羅列?torch,但項目需要?torch?加速
    若?requirements.txt?文件中沒有列出?torch,但項目實際需要?torch?進行 GPU 加速,此時我們需要根據系統的 CUDA 12.8 版本號來選擇安裝?torch?的版本。
  • 如果我們的 CUDA 12.8 版本支持且我們希望嘗試最新特性,可以選擇安裝最新的 Preview (Nightly) 版;若追求穩定性,建議安裝最新的 Stable 版本。

  • 情況二:羅列了?torch?版本,但未羅列關聯的?torchvision?和?torchaudio?包
    當?requirements.txt?文件中列出了?torch?的具體版本,卻沒有列出關聯的?torchvision?和?torchaudio?這兩個包時,僅安裝?torch?是無法實現完整的 CUDA GPU 加速支持的。
  • ?我們需要手動修改?requirements.txt?文件的內容,從 PyTorch 官方網站查找出與?requirements.txt?文件中指定的?torch?版本相匹配的?torchvision?和?torchaudio?版本,并添加到?requirements.txt?中。
  • 具體查找方法為:在 PyTorch 官方網站的?Previous PyTorch Versions?頁面,找到對應?torch?版本且適配 CUDA 12.8 的安裝命令,從中獲取?torchvision?和?torchaudio?的版本信息。

  • 情況三:列出了?torch,但未指定版本號,且未列出?torchvision?和?torchaudio?包
    若?requirements.txt?文件列出了?torch,但沒有指定其版本號,同時也沒有列出?torchvision?和?torchaudio?這兩個包,同樣需要我們修改?requirements.txt?文件。???????
  • 手動添加上?torchvision?和?torchaudio?這兩個包,并根據項目需求和系統 CUDA 版本,從 PyTorch 官方網站獲取合適的版本信息添加到文件中。

  • 情況四:torchtorchvision?和?torchaudio?三個包都列出,但未指定版本號
    當?requirements.txt?文件中列出了?torchtorchvision?和?torchaudio?三個包,但都沒有指定版本號時,默認會安裝最新的 PyTorch 版本。
  • 然而,由于沒有明確版本號,在安裝?requirements.txt?文件中的其他包時,與其相關的依賴有可能會被卸載重裝或變更,從而導致版本不兼容問題。
  • 為避免這種情況,最好我們找到 PyTorch 官網適配 CUDA 的最新穩定版的安裝命令,提前進行安裝或者在其他包安裝完成后進行重裝。
  • 以下是相關命令示例:
  • 安裝命令
  • ?使用?conda
conda install pytorch torchvision torchaudio -c pytorch -c nvidia
  • 使用?pip
?
pip3 install torch torchvision torchaudio --index-url https://download.pytorch.org/whl/cu128

    • 卸載命令
    • 使用?conda
    conda remove pytorch torchvision torchaudio
    • 使用?pip
    pip uninstall torch torchvision torchaudio

    • 清除緩存命令
      • 使用?pip
    pip cache purge
    • 使用?conda
    conda clean --all
    • 安裝命令:從 PyTorch 官方網站獲取適合我們系統和 CUDA 12.8 版本的安裝命令,例如使用?pip?安裝 CUDA 12.8 版本的 PyTorch:
    • 穩定版
    pip3 install torch torchvision torchaudio --index-url https://download.pytorch.org/whl/cu128
    • 預覽版
    pip3 install --pre torch torchvision torchaudio --index-url https://download.pytorch.org/whl/nightly/cu128

    ?

    • 情況五:torchtorchvision?和?torchaudio?三個包都列出且指定了版本號,但版本號不兼容
      當?requirements.txt?文件中?torchtorchvision?和?torchaudio?三個包都已列出并且指定了版本號,但這些版本號之間不兼容時,無法實現完整的 CUDA GPU 支持。此時,我們需要訪問 PyTorch 官方網站的?Previous PyTorch Versions(以前的 PyTorch 版本)頁面。在該頁面中,查找與?requirements.txt?文件中?torch?版本一致且適配 CUDA的安裝命令。
    • 根據查找到的命令,對?requirements.txt?文件中的相關包版本信息進行修正,以確保版本兼容性。

    • 情況六:torchtorchvision?和?torchaudio?三個包,只羅列了其中的兩個
      當?requirements.txt?文件中只羅列了?torchtorchvision?和?torchaudio?三個包中的其中兩個時,無法保證實現完整的 CUDA GPU 支持。這種情況下,我們需要訪問 PyTorch 官方網站的安裝頁面(Start Locally | PyTorch)或以前的 PyTorch 版本頁面(Previous PyTorch Versions | PyTorch)。
    • 根據已羅列的包及其版本信息(若有指定版本),以及系統的 CUDA 12.8 版本等條件,查找合適的 PyTorch 安裝命令。
    • 然后根據該命令,對?requirements.txt?文件進行補充和修正,添加缺失的包及其對應的版本信息,以確保三個包都能正確安裝且版本兼容。

    • 情況七:其他因篇幅有限未舉例的情形
    • 當出現其他安裝失敗的情形時,請優先排查相關組件,然后用PyTorch 官方網站上生成或找到的舊版安裝命令重試,可切換不同的CUDA版本命令逐一重試后驗證安裝。

    3.2.2 配置安裝選項
    • PyTorch 版本
      • 若?requirements.txt?文件指定了?torch?版本號,在官方安裝頁面的 “PyTorch Build” 下拉菜單中,通過滾動查找或手動輸入的方式選擇對應的版本。
      • 若為新項目,我們選擇 “Stable”(穩定版)。
    • 操作系統:根據我們的計算機操作系統,在 “Your OS” 下拉菜單中選擇相應選項,如 Windows、Linux 或 macOS。
    • 包管理器:根據我們之前創建虛擬環境所使用的工具,在 “Package” 下拉菜單中選擇合適的包管理器。如果我們使用?conda?創建了虛擬環境,選擇?conda;若使用?venv?或不打算使用?conda,選擇?pip
    • CUDA 版本:我們選擇 “CUDA 12.8”。

    3.3 獲取安裝命令

    完成上述配置后,頁面下方會自動生成相應的安裝命令。該命令包含了安裝?torchtorchvision?和?torchaudio?所需的所有信息,并且確保了這三個包的版本兼容性,以支持 CUDA 12.8 GPU 加速。

    3.4 執行安裝命令

    3.4.1 激活虛擬環境

    如果我們創建了虛擬環境,需要先激活它:

    • 使用 conda 創建的虛擬環境:在命令行輸入?conda activate <虛擬環境名稱>,例如?conda activate pytorch_env
    • 使用 venv 創建的虛擬環境
      • 在 Linux/Mac 系統中,輸入?source <虛擬環境路徑>/bin/activate,如?source pytorch_env/bin/activate
      • 在 Windows 系統中,輸入?<虛擬環境路徑>\Scripts\activate,如?pytorch_env\Scripts\activate
    3.4.2 執行安裝命令

    將之前從 PyTorch 官方網站獲取的安裝命令復制到命令行中,并按下回車鍵執行。安裝過程可能需要一些時間,具體取決于我們的網絡速度和系統性能。

    3.5 驗證安裝

    安裝完成后,需要我們驗證 PyTorch 是否成功安裝并支持 CUDA 12.8 GPU。

    • 打開命令行,使用 Python 3.13 解釋器,輸入?python3.13?進入 Python 解釋器。
    • 在 Python 解釋器中輸入以下代碼:
    import torch  # 導入 PyTorch 庫print("PyTorch 版本:", torch.__version__)  # 打印 PyTorch 的版本號# 檢查 CUDA 是否可用,并設置設備("cuda:0" 或 "cpu")
    device = torch.device("cuda:0" if torch.cuda.is_available() else "cpu")
    print("設備:", device)  # 打印當前使用的設備
    print("CUDA 可用:", torch.cuda.is_available())  # 打印 CUDA 是否可用
    print("cuDNN 已啟用:", torch.backends.cudnn.enabled)  # 打印 cuDNN 是否已啟用# 打印 PyTorch 支持的 CUDA 和 cuDNN 版本
    print("支持的 CUDA 版本:", torch.version.cuda)
    print("cuDNN 版本:", torch.backends.cudnn.version())# 創建兩個隨機張量(默認在 CPU 上)
    x = torch.rand(5, 3)
    y = torch.rand(5, 3)# 將張量移動到指定設備(CPU 或 GPU)
    x = x.to(device)
    y = y.to(device)# 對張量進行逐元素相加
    z = x + y# 打印結果
    print("張量 z 的值:")
    print(z)  # 輸出張量 z 的內容

    ?

    代碼輸出解釋

    • print("PyTorch 版本:", torch.__version__):輸出當前安裝的 PyTorch 版本號,幫助我們確認所使用的 PyTorch 版本。此處應輸出:PyTorch 版本
    • device = torch.device("cuda:0" if torch.cuda.is_available() else "cpu")?和?print("設備:", device):檢查 CUDA 是否可用。若可用,設備設置為第一個 GPU(cuda:0);若不可用,設置為 CPU。輸出當前使用的設備,讓我們知道計算將在哪個設備上進行。此處應輸出:cuda:0。
    • print("CUDA 可用:", torch.cuda.is_available()):明確輸出 CUDA 是否可用,判斷系統是否具備 GPU 加速的條件。此處應輸出:CUDA 可用
    • print("cuDNN 已啟用:", torch.backends.cudnn.enabled):輸出 cuDNN 是否已經啟用。cuDNN 是 NVIDIA 提供的深度神經網絡庫,啟用后可加速深度學習計算。此處應輸出:cuDNN 已啟用
    • print("支持的 CUDA 版本:", torch.version.cuda):輸出當前 PyTorch 支持的 CUDA 版本,確保 CUDA 版本與 PyTorch 兼容。此處應輸出:支持的 CUDA 版本:XX.XX
    • print("cuDNN 版本:", torch.backends.cudnn.version()):輸出當前使用的 cuDNN 版本,確認 cuDNN 版本是否符合要求。此處應輸出:cuDNN 版本:XXXXX
    • x = torch.rand(5, 3)?和?y = torch.rand(5, 3):創建兩個形狀為?(5, 3)?的隨機張量,這些張量默認在 CPU 上創建。
    • x = x.to(device)?和?y = y.to(device):將創建的隨機張量移動到之前確定的設備(CPU 或 GPU)上,保證后續計算在指定設備進行。此處應被移動到設備'cuda:0'
    • z = x + y:對兩個張量進行逐元素相加操作,得到結果張量?z
    • print("張量 z 的值:")?和?print(z):輸出結果張量?z?的內容,確認張量計算是否正常執行。此處應輸出:[*****,device='cuda:0']

    通過以上輸出,我們可以全面了解 PyTorch 的安裝情況、CUDA 和 cuDNN 的配置情況,以及張量計算是否能在指定設備上正常進行。

    驗證PyTorch深度學習環境Torch和CUDA還有cuDNN是否正確配置的命令_驗證pytorch和cuda的命令-CSDN博客

    四、PyTorch 的安裝方法

    4.1 pip 安裝(從 PyTorch 官網命令)

    按照前面步驟從 PyTorch 官方網站獲取適合我們系統和 CUDA 12.8 版本的?pip?安裝命令,然后在激活的虛擬環境中執行該命令即可完成安裝。

    這種方法簡單方便,且能保證安裝的是官方推薦的版本。

    4.2 conda 安裝(從 PyTorch 官網命令)

    同樣從 PyTorch 官方網站獲取?conda?安裝命令,在激活的?conda?虛擬環境中執行該命令。

    conda?可以更好地管理包的依賴關系,適合對環境管理有較高要求的我們。

    4.3 下載包后從本地安裝(從鏡像源 不推薦)

    我們可以從鏡像源下載?torchtorchvision?和?torchaudio?的安裝包,然后通過本地安裝的方式進行安裝。

    但這種方法不推薦,因為鏡像源的包可能不是最新版本,且版本兼容性難以保證,容易導致安裝失敗或 CUDA 12.8 GPU 支持出現問題。

    五、總結

    通過嚴格按照上述步驟操作,特別是使用 PyTorch 官方網站生成的安裝命令,我們能夠確保?torchtorchvision?和?torchaudio?三個包的版本兼容性,從而 100% 成功安裝帶有 CUDA 12.8 GPU 支持的 PyTorch。在安裝過程中,要仔細檢查每個步驟,根據不同的項目需求準確判斷并配置安裝選項,確保滿足先決條件。同時,優先選擇?pip?或?conda?從官方網站獲取命令進行安裝,避免使用不推薦的本地安裝方式。希望這份攻略能夠幫助我們順利搭建起高效的深度學習開發環境。

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

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

    相關文章

    圖數據庫榜單網站

    圖數據庫榜單 https://db-engines.com/en/ranking/graphdbms點擊跳轉

    Android Jetpack Compose 面試題大全(2025最新整理)

    基礎概念 什么是 Jetpack Compose&#xff1f;它與傳統 Android UI 開發有何不同&#xff1f; Compose 是 Android 的現代聲明式 UI 工具包&#xff0c;使用 Kotlin 編寫不同于傳統的基于 View 和 XML 的 imperative 方式&#xff0c;Compose 使用聲明式范式主要區別&#xff1…

    添加了addResourceHandlers 但沒用

    B站黑馬的視頻 public class WebMvcConfig extends WebMvcConfigurationSupport { /** * 設置靜態資源映射 * param registry */ Override protected void addResourceHandlers(ResourceHandlerRegistry registry) { log.info("開始進…

    STM32實現simpleFOC控制無刷電機

    一、FOC基礎知識學習 使用simpleFOC控制無刷電機前&#xff0c;需要大概了解一下相關知識&#xff0c;包括力矩控制、速度控制、位置控制的原理和它們之間的聯系。 推薦學習資料&#xff1a; 教你寫一個比SimpleFOC更好的電機庫_嗶哩嗶哩_bilibili 《燈哥手把手教你寫FOC算…

    【數據結構】快慢指針

    一、快慢指針的原理 定義&#xff1a; 快指針&#xff1a;每次移動兩步 慢指針&#xff1a;每次移動一步 終止條件&#xff1a; 當快指針到達鏈表末尾時停止 事件復雜度&#xff1a; 始終為O(n),僅需依次遍歷 空間復雜度&#xff1a; …

    畢業論文 | 基于STM32的自動煙霧報警系統設計

    基于STM32的煙霧報警系統 一、系統設計原理1. **系統架構**2. **工作原理**二、核心公式與算法1. **MQ-2傳感器濃度計算**2. **溫度傳感器數據處理**3. **校準與濾波**三、關鍵代碼實現1. **ADC初始化與數據讀取(以MQ-2為例)**2. **報警邏輯與閾值設置**3. **EEPROM存儲閾值*…

    Android Gradle插件開發

    文章目錄 1. Gradle插件是什么2. 為什么需要插件3. 編寫插件位置4. 編寫插件5. 自定義插件擴展5.1 訂閱擴展對象5.2 把擴展添加給Plugin并使用5.3 配置參數5.4 嵌套擴展5.4.1 定義擴展5.4.2 獲取擴展屬性5.4.3 使用5.4.4 執行5.4.5 輸出 6. 編寫在單獨項目里6.1 新建Module6.2 …

    PPIO X OWL:一鍵開啟任務自動化的高效革命

    2024年&#xff0c;僅憑一PPIO X OWL&#xff1a;一鍵開啟任務自動化的高效革命篇技術論文&#xff0c;OWL的Github倉庫便在24小時斬獲了15k Star&#xff0c;成為2024年增速最快的多智能體協作框架&#xff0c;重新定義了任務自動化的效率邊界。Camel AI團隊開源全棧方案&…

    分布式事務,事務失效,TC事務協調者

    1. 概述 本方案書旨在解決分布式系統中事務一致性問題&#xff0c;重點闡述全局事務標識&#xff08;XID&#xff09;的傳遞與存儲機制、事務協調者&#xff08;TC&#xff09;的設計與部署&#xff0c;以及分布式事務失效場景的應對策略。基于業界成熟框架&#xff08;如Seat…

    2025年“深圳杯”數學建模挑戰賽D題-法醫物證多人身份鑒定問題

    法醫物證多人身份鑒定問題 小驢數模 犯罪現場法醫物證鑒定是關系到國家安全、公共安全、人民生命財產安全和社會穩定的重大問題。目前法醫物證鑒定依賴DNA分析技術不斷提升。DNA檢驗的核心是STR&#xff08;Short Tandem Repeat&#xff0c;短串聯重復序列&#xff09;分析技術…

    Mysql查詢異常【Truncated incorrect INTEGER value】

    文章目錄 異常原因分析1、數據類型不一致2、數據長度超長3、數據格式要正確 處理方案模擬案例創建表數據查詢 異常 在執行MySQL的語句時&#xff0c;在控制臺報錯如下所示。 Data truncation: Truncated incorrect INTEGER value 原因分析 1、數據類型不一致 必須要保證數據…

    WPF性能優化舉例

    WPF性能優化集錦 一、UI渲染性能優化 1. 虛擬化技術 ??ListView/GridView虛擬化??: <ListView VirtualizingStackPanel.IsVirtualizing="True"VirtualizingStackPanel.VirtualizationMode="Recycling"ScrollViewer.IsDeferredScrollingEnabled=…

    C# 面向對象實例演示

    C# 面向對象編程實例演示 一、基礎概念回顧 面向對象編程(OOP)的四大基本特性&#xff1a; ??封裝?? - 將數據和操作數據的方法綁定在一起??繼承?? - 創建新類時重用現有類的屬性和方法??多態?? - 同一操作作用于不同對象產生不同結果??抽象?? - 簡化復雜系…

    大連理工大學選修課——機器學習筆記(3):KNN原理及應用

    KNN原理及應用 機器學習方法的分類 基于概率統計的方法 K-近鄰&#xff08;KNN&#xff09;貝葉斯模型最小均值距離最大熵模型條件隨機場&#xff08;CRF&#xff09;隱馬爾可夫模型&#xff08;HMM&#xff09; 基于判別式的方法 決策樹&#xff08;DT&#xff09;感知機…

    蔣新松:中國機器人之父

    名人說:路漫漫其修遠兮,吾將上下而求索。—— 屈原《離騷》 創作者:Code_流蘇(CSDN)(一個喜歡古詩詞和編程的Coder??) 蔣新松:中國機器人之父 一、生平簡介 1. 早年經歷與求學道路 蔣新松出生于1931年8月3日,江蘇省江陰澄北鎮一個靠近長江的小鎮。他的名字來源于杜…

    表征(Representations)、嵌入(Embeddings)及潛空間(Latent space)

    文章目錄 1. 表征 (Representations)2. 嵌入 (Embeddings)3. 潛空間 (Latent Space)4. 關系總結5. 學習思考 1. 表征 (Representations) 定義: 表征是指數據的一種編碼或描述形式。在機器學習和深度學習中&#xff0c;它特指模型在處理數據時&#xff0c;將原始輸入數據轉換成…

    【STM32實物】基于STM32的RFID多卡識別語音播報系統設計

    演示視頻: 基于STM32的RFID多卡識別語音播報系統設計 前言:本項目可實現多個電子標簽IC卡RFID識別,刷卡識別后進行中文語音播報反饋,同時進行控制對應的燈光開關。以此也可擴展開發更多功能。 本項目所需主要硬件包括:STM32F103C8T6最小系統板、RFID-RC522模塊、五個IC電…

    全面了解CSS語法 ! ! !

    CSS&#xff08;層疊樣式表&#xff09;是網頁設計的靈魂之一&#xff0c;它賦予了網頁活力與美感。無論是為一個簡單的個人博客增添色彩&#xff0c;還是為復雜的企業網站設計布局&#xff0c;CSS都是不可或缺的工具。那么&#xff0c;CSS語法到底是什么樣的呢&#xff1f;它背…

    青少年抑郁癥患者亞群結構和功能連接耦合的重構

    目錄 1 研究背景及目的 2 研究方法 2.1 數據來源與參與者 2.1.1 MDD患者&#xff1a; 2.1.2 健康對照組&#xff1a; 2.2 神經影像分析流程 2.2.1 圖像采集與預處理&#xff1a; 2.2.2 網絡構建&#xff1a; 2.2.3 區域結構-功能耦合&#xff08;SC-FC耦合&#xff09…

    【QT】編寫第一個 QT 程序 對象樹 Qt 編程事項 內存泄露問題

    目錄 1. 編寫第一個 QT 程序 1.1 使用 標簽 實現 1.2 純代碼形式實現 1.3 使用 按鈕 實現 1.3.1 圖形化界面實現 1.3.2 純代碼形式實現 1.4 使用 編輯框 實現 1.4.1 圖形化界面實現 1.4.2 純代碼形式實現 1.4.3 內存泄露 2. 認識對象模型&#xff08;對象樹&…